Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents


Info
titleNote

A reference setup of the xconf dataservice is available at https://xconf.rdkcentral.com:9092/ for the community members to get acquainted with xconf. You can replace the <host> , <port> and protocol as xconf.rdkcentral.com, 9092 and https respectively in the placeholders mentioned below in the request samples. Or if you have deployed your own server instance then replace the host and port accordinngly.


Firmware Config

Retrieve a list of firmware configs

Request


Code Block
languagephp
themeConfluence
GET http://<host>:<port>/queries/firmwares?applicationType={type}


Headers:

Code Block
languagephp
themeConfluence
Accept = application/json OR application/xml

...



applicationType parameter is not required, default value is stb

...



Response: 200 OK OR 400 BAD REQUEST

Request: http://localhost<host>:9091<port>/queries/firmwares.json OR http://localhost<host>:9091<port>/queries/firmwares


JSON response:

{


Code Block
languagephp
themeConfluence
{

  "id": "firmwareConfigId",

...



  "description": "FirmwareDescription",

...



  "supportedModelIds": [

...



    "MODELA"

...



  ],

...



  "firmwareFilename": "FirmwareFilename",

...



  "firmwareVersion": "FirmwareVersion"

...



}


XML response

...

Code Block
languagephp
themeConfluence
<ArrayList>
 <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</

...

firmwareFilename>
  <firmwareVersion>PX013AN_2.1s11_VBN_HYBse-signed</

...

firmwareVersion>
 </item>
</ArrayList>

Retrieve a single firmware config by id

...

Response: 200 OK

Request: 

http://localhost<host>:9091<port>/queries/firmwares/b65962b5-1481-4eed-a010-2abfa8c3bbfd

 OR 

http://localhost<host>:9091<port>/queries/firmwares/b65962b5-1481-4eed-a010-2abfa8c3bbfd.json


JSON response

{

...

Code Block
languagephp
themeConfluence
{

  "id": "b65962b5-1481-4eed-a010-2abfa8c3bbfd",

...



  "updated": 1440492963476,

...



  "description": "_-",

...



  "supportedModelIds": [

...



    "YETST"

...



  ],

...



  "firmwareDownloadProtocol": "tftp",

...



  "firmwareFilename": "_-",

...



  "firmwareVersion": "_-",

...



  "rebootImmediately": false

...



}


XML response

...

Code Block
languagephp
themeConfluence
<FirmwareConfig>
 <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>

 

Retrieve firmware configs by modelId 

...

Response: 200 OK OR 400 BAD REQUEST (if application type has a wrong value)

Request: 

http://localhost<host>:9091<port>/queries/firmwares/model/YETST.json

 OR 

http://localhost<host>:9091<port>/queries/firmwares/model/YETST


JSON response

Code Block
languagephp
themeConfluence
[{

...



  "id": "b65962b5-1481-4eed-a010-2abfa8c3bbfd",

...



  "updated": 1440492963476,

...



  "description": "_-",

...



  "supportedModelIds": [

...



    "YETST"

...



  ],

...



  "firmwareDownloadProtocol": "tftp",

...



  "firmwareFilename": "_-",

...



  "firmwareVersion": "_-",

...



  "rebootImmediately": false

...



}]


XML response

...

Code Block
languagephp
themeConfluence
<ArrayList>
 <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</

...

firmwareFilename>
  <firmwareVersion>PX013AN_2.1s11_VBN_HYBse-signed</

...

firmwareVersion>
 </item>
</ArrayList>

Create/update a firmware config

...

Responce: 200 OK and saved object (see get request for example); 400 BAD REQUEST (by validation error); 500 INTERNAL SERVER ERROR

Request: 

http://localhost<host>:9091<port>/updates/firmwares.json

 OR 

http://localhost<host>:9091<port>/updates/firmwares

Restrictions: 

Description, file name, version, supported model should be not empty;


JSON request

Code Block
languagephp
themeConfluence
{

...



  "id": "b65962b5-1481-4eed-a010-2abfa8c3bbfd",

...



  "updated": 1440492963476,

...



  "description": "_-",

...



  "supportedModelIds": [

...



    "YETST"

...



  ],

...



  "firmwareDownloadProtocol": "tftp",

...



  "firmwareFilename": "_-",

...



  "firmwareVersion": "_-",

...



  "rebootImmediately": false

...



}


XML request

...

Code Block
languagephp
themeConfluence
<FirmwareConfig>
 <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 a firmware config by id

...

Response: 204 NO CONTENT and text message: Firmware config successfully deleted OR Config doesn't exist.

Request:

http://localhost<host>:9091<port>/delete/firmwares/b65962b5-1481-4eed-a010-2abfa8c3bbfd

IP rules

Retrieve an ip rule list

GET http://<host>:<port>/queries/rules/ips?applicationType={type}

...

Response: 200 OK OR 400 BAD REQUEST (if application type has a wrong value)

Request: 

http://localhost<host>:9091<port>/queries/rules/ips.json

 OR 

http://localhost<host>:9091<port>/queries/rules/ips


JSON response

[

Code Block
languagephp
themeConfluence
[

  {

...



    "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-5b6466fc3c5c",

...



        "name": "test",

...



        "ipAddresses": [

...



          "192.11.11.11"

...



        ]

...



      }

...



    }

...



  }

...



]


XML response

...

Code Block
languagephp
themeConfluence
<ArrayList>
 <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>

Retrieve an ip rule by name

...

Response: 200 OK OR 400 BAD REQUEST (if application type has a wrong value)

Request: 

http://localhost<host>:9091<port>/queries/rules/ips/fsd.json

 OR 

http://localhost<host>:9091<port>/queries/rules/ips/fsd


JSON response

Code Block
languagephp
themeConfluence
{

...



  "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-5b6466fc3c5c",

...



      "name": "test",

...



      "ipAddresses": [

...



        "192.11.11.11"

...



      ]

...



    }

...



  }

...



}


XML response

...

Code Block
languagephp
themeConfluence
<IpRuleBean>
 <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>

Create/update an ip rule

If IpRule is missing it will be being created, otherwise updated. For update operation id field is not needed.

...

Name, environmentId, modelId should be not empty, IP address group should be specified

Request: 

http://localhost<host>:9091<port>/updates/rules/ips.json 

OR

 http://localhost<host>:9091<port>/updates/rules/ips


JSON request

Code Block
languagephp
themeConfluence
{

...


  "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-5b6466fc3c5c",

...



      "name": "test",

...



      "ipAddresses": [

...



        "192.11.11.11"

...



      ]

...


    }

...


  }

...


}


XML request

...

Code Block
languagephp
themeConfluence
<IpRuleBean>
 <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 an ip rule

DELETE http://<host>:<port>/delete/rules/ips/{ipRuleName}?applicationType={type}

...

Response: 204 NO CONTENT and message: IpRule successfully deleted OR Rule doesn't exists, 400 BAD REQUEST if applicationType is not valid;

Request: http://localhost<host>:9091<port>/delete/rules/ips/ruleName

Location filter

Retrieve a location filter list

...

Response: 200 OK OR 400 BAD REQUEST if applicationType is not valid

Request: 

http://localhost<host>:9091<port>/queries/filters/locations.json 

OR

 http://localhost<host>:9091<port>/queries/filters/locations


JSON response

Code Block
language

[

php
themeConfluence
[

  {

...



    "ipAddressGroup": {

...



      "id": "2c184325-f9eb-4edc-85c3-5b6466fc3c5c",

...



      "name": "test",

...



      "ipAddresses": [

...



        "192.11.11.11"

...



      ]

...



    },

...



    "environments": [

...



       

...



    ],

...



    "models": [

...



       

...



    ],

...



    "ipv6FirmwareLocation": "2001:0db8:11a3:09d7:1f34:8a2e:07a0: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"

...



  }

...



]


XML response

...

Code Block
languagephp
themeConfluence
<DownloadLocationFilterWrapper>
 <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</

...

ipv6FirmwareLocation>
 <httpLocation>http://localhost:

...

8080</httpLocation>
 <forceHttp>true</forceHttp>
 <id>2ce1279b-bb25-4fda-9a34-fe8466bc2702</

...

id>
 <name>name</name>
 <boundConfigId>95e75859-ae8f-4d6a-b758-11fefbe647e1</

...

boundConfigId>
 <ipv4FirmwareLocation>10.10.10.10</

...

ipv4FirmwareLocation>
</DownloadLocationFilterWrapper>

Retrieve a location filter by name

...

Response: 200 OK

Request: 

http://localhost<host>:9091<port>/queries/filters/locations/name.json

 OR 

http://localhost<host>:9091<port>/queries/filters/locations/name


JSON response

Code Block
language

[

php
themeConfluence
[

  {

...



    "ipAddressGroup": {

...



      "id": "2c184325-f9eb-4edc-85c3-5b6466fc3c5c",

...



      "name": "test",

...



      "ipAddresses": [

...



        "192.11.11.11"

...



      ]

...



    },

...



    "environments": [

...



       

...



    ],

...



    "models": [

...



       

...



    ],

...



    "ipv6FirmwareLocation": "2001:0db8:11a3:09d7:1f34:8a2e:07a0: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"

...



  }

...



]


XML response

...

Code Block
languagephp
themeConfluence
<DownloadLocationFilterWrapper>
 <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</

...

ipv6FirmwareLocation>
 <httpLocation>http://localhost:

...

8080</httpLocation>
 <forceHttp>true</forceHttp>
 <id>2ce1279b-bb25-4fda-9a34-fe8466bc2702</

...

id>
 <name>name</name>
 <boundConfigId>95e75859-ae8f-4d6a-b758-11fefbe647e1</

...

boundConfigId>
 <ipv4FirmwareLocation>10.10.10.10</

...

ipv4FirmwareLocation>
</DownloadLocationFilterWrapper>

Create/update location filter

...

Condition, models, environments, IPv4, location, any location (HTTP or firmware), IPv4/IPv6 should be valid

Request: 

http://localhost<host>:9091<port>/updates/filters/locations.json

 OR 

http://localhost<host>:9091<port>/updates/filters/locations


XML request

...

Code Block
languagephp
themeConfluence
<DownloadLocationFilterWrapper>
 <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</

...

ipv6FirmwareLocation>
 <httpLocation>http://localhost:

...

8080</httpLocation>
 <forceHttp>true</forceHttp>
 <id>2ce1279b-bb25-4fda-9a34-fe8466bc2702</

...

id>
 <name>name</name>
 <boundConfigId>95e75859-ae8f-4d6a-b758-11fefbe647e1</

...

boundConfigId>
 <ipv4FirmwareLocation>10.10.10.10</

...

ipv4FirmwareLocation>
</DownloadLocationFilterWrapper>


JSON request

Code Block

{

languagephp
themeConfluence
{

  "ipAddressGroup": {

...



    "id": "2c184325-f9eb-4edc-85c3-5b6466fc3c5c",

...



    "name": "test",

...



    "ipAddresses": [

...



      "192.11.11.11"

...



    ]

...



  },

...



  "environments": [

...



     

...



  ],

...



  "models": [

...



     

...



  ],

...



  "ipv6FirmwareLocation": "2001:0db8:11a3:09d7:1f34:8a2e:07a0: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 location filter by name

DELETE http://<host>:<port>/delete/filters/locations/{locationFilterName}?applicationType={type}

...

Response: 204 NO CONTENT and message: Location filter successfully deleted OR Filter doesn't exist with name: <filterName>, 400 BAD REQUEST if applicationType is not valid

Request: http://localhost<host>:9091<port>/delete/filters/location/name

...

Response: 200 OK, 400 BAD REQUEST if applicationType is not valid

Request: 

http://localhost<host>:9091<port>/queries/filters/downloadlocation.json

 OR 

http://localhost<host>:9091<port>/queries/filters/downloadlocation


JSON response

Code Block
languagephp
themeConfluence
 {

...



   "type":"com.comcast.xconf.estbfirmware.DownloadLocationRoundRobinFilterValue",

...



   "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

Code Block
languagephp
themeConfluence
<DownloadLocationRoundRobinFilterValue type="com.comcast.xconf.estbfirmware.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</httpFullUrlLocation>
 <neverUseHttp>true</neverUseHttp>
 <firmwareVersions>??</

...

firmwareVersions>
</DownloadLocationRoundRobinFilterValue>

Update download location filter

...

Location URL, IPv4/IPv6 should be valid, percentage should be positive and within [0, 100], locations should be not duplicated

Request: 

http://localhost<host>:9091<port>/updates/filters/downloadlocation.json 

OR 

http://localhost<host>:9091<port>/updates/filters/downloadlocation.json


JSON request

Code Block
languagephp
themeConfluence
 {

...



  "type": "com.comcast.xconf.estbfirmware.DownloadLocationRoundRobinFilterValue",

...



  "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

Code Block
languagephp
themeConfluence
<DownloadLocationRoundRobinFilterValue type="com.comcast.xconf.estbfirmware.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</httpFullUrlLocation>
 <neverUseHttp>true</neverUseHttp>
 <firmwareVersions>??</

...

firmwareVersions>
</DownloadLocationRoundRobinFilterValue>

Environment model rules

Retrieve an environment model rule list

...

Response: 200 OK, 400 BAD REQUEST if applicationType is not valid

Request: 

http://localhost<host>:9091<port>/queries/rules/envModels.json 

OR 

http://localhost<host>:9091<port>/queries/rules/envModels


JSON response

Code Block
language

[

php
themeConfluence
[

  {

...



    "id": "12b620bd-2e74-4467-91e5-c29657022c05",

...



    "name": "re",

...



    "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-signed"

...



    },

...



    "environmentId": "TEST",

...



    "modelId": "PX013ANC"

...



  },

...



  {

...



    "id": "3609a195-ecd3-4950-8583-ceb2f6f6f16b",

...



    "name": "uuuuuuu",

...



    "environmentId": "DEV",

...



    "modelId": "YETST"

...



  }

...



]


XML response

...

Code Block
languagephp
themeConfluence
<ArrayList>
 <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</

...

firmwareFilename>
   <firmwareVersion>PX013AN_2.1s11_VBN_HYBse-signed</

...

firmwareVersion>
  </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>

Retrieve an environment model rule by name

...

Response: 200 OK, 400 BAD REQUEST if applicationType is not valid

Request: 

http://localhost<host>:9091<port>/queries/rules/envModels/testName.json 

OR 

http://localhost<host>:9091<port>/queries/rules/envModels/testName.json


JSON response

Code Block

{

languagephp
themeConfluence
{

  "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-signed"

...



  },

...



  "environmentId": "TEST",

...



  "modelId": "PX013ANC"

...



}


XML response

...

Code Block
languagephp
themeConfluence
<EnvModelRuleBean>
 <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</

...

firmwareFilename>
  <firmwareVersion>PX013AN_2.1s11_VBN_HYBse-signed</

...

firmwareVersion>
 </firmwareConfig>
 <environmentId>TEST</environmentId>
 <modelId>PX013ANC</modelId>
</EnvModelRuleBean>

Create/update an environment model rule

If EnvModelRule is missing it will be being created, otherwise updated. For update operation id field is not needed.

...

Name, environment, model should be not empty, name is used only once, env/model should not overlap each other

Request: 

http://localhost<host>:9091<port>/updates/rules/envModels.json

 OR 

http://localhost<host>:9091<port>/updates/rules/envModels


JSON request

Code Block

{

languagephp
themeConfluence
{

  "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-signed"

...



  },

...



  "environmentId": "TEST",

...



  "modelId": "PX013ANC"

...



}


XML request

...

Code Block
languagephp
themeConfluence
<EnvModelRuleBean>
 <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</

...

firmwareFilename>
  <firmwareVersion>PX013AN_2.1s11_VBN_HYBse-signed</

...

firmwareVersion>
 </firmwareConfig>
 <environmentId>TEST</environmentId>
 <modelId>PX013ANC</modelId>
</EnvModelRuleBean>

Delete an environment model rule

...

Response: 204 NO CONTENT and message: Rule successfully deleted OR Rule doesn't exist with name: <ruleName>, 400 if applicationType is not valid

Request: http://localhost<host>:9091<port>/delete/rules/envModels/testName.json

IP filter

IP Filter

Retrieve an IP filter list

...

Responce: 200 OK, 400 BAD REQUEST

Request: 

http://localhost<host>:9091<port>/queries/filters/ips.json

 OR 

http://localhost<host>:9091<port>/queries/filters/ips 


JSON response

Code Block
language

[

php
themeConfluence
[

  {

...



    "id": "8bdb3493-a18b-4230-9b25-fd44df38863b",

...



    "name": "name",

...



    "ipAddressGroup": {

...



      "id": "2c184325-f9eb-4edc-85c3-5b6466fc3c5c",

...



      "name": "test",

...



      "ipAddresses": [

...



        "192.11.11.11"

...



      ]

...



    },

...



    "warehouse": false

...



  },

...



  {

...



    "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

...

Code Block
languagephp
themeConfluence
<ArrayList>
 <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>

Retrieve an ip filter by name

GET http://<host>:<port>/queries/filters/ips/{ipFilterName}?applicationType={type}

...

Responce: 200 OK, 400 BAD REQUEST if applicationType is not valid

Request: 

http://localhost<host>:9091<port>/queries/filters/ips/namef.json 

OR 

http://localhost<host>:9091<port>/queries/filters/ips/namef.json


JSON response

{

Code Block
languagephp
themeConfluence
{

  "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

...

Code Block
languagephp
themeConfluence
<IpFilter>
 <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>

Create/update an IP filter

If IpFilter is missing it will be being created, otherwise updated. For update operation id field is not needed.

...

Name, IP address group should be not empty

Request: 

http://localhost<host>:9091<port>/updates/filters/ips.json

 OR 

http://localhost<host>:9091<port>/updates/filters/ips


JSON request

Code Block
languagephp

{

themeConfluence
{

    "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 request

...

Code Block
languagephp
themeConfluence
<IpFilter>
 <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>

Delete IP filter

Response: 200 OK and message: IpRuleId is empty OR IpFilter successfully deleted

...

Response: 204 NO CONTENT and message: IpFilter successfully deleted OR Filter doesn't exist with name: <filterName>, 400 BAD REQUEST if applicationType is not valid

Request: http://localhost<host>:9091<port>/delete/filters/ips/namef

Percent filter

Retrieve percent filter

GET http://<host>:<port>/queries/filters/percent?applicationType={type}

...

Responce: 200 OK, 400 BAD REQUEST if applicationType is not valid


Request: 

http://localhost<host>:9091<port>/queries/filters/percent.json 

OR 

http://localhost<host>:9091<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 they are not set in the Percent Filter.

  

JSON response

Code Block
languagephp
themeConfluence
{
"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

Code Block
languagephp
themeConfluence
<PercentFilterWrapper type="com.comcast.xconf.queries.beans.PercentFilterWrapper">

...


 <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</

...

intermediateVersion>
  <firmwareVersions>
   <firmwareVersions>PR150BN_2.4p6s3_VBN_HYBsd</

...

firmwareVersions>
   <firmwareVersions>PR150BN_2.4p8s3_VBN_HYBsd-signed</

...

firmwareVersions>
   <firmwareVersions>PR150BN_2.3p7s1_PROD_HYBse</

...

firmwareVersions>
  </firmwareVersions>
  <name>IV_6a</

...

name>
 </EnvModelPercentages>
</PercentFilterWrapper>

Retrieve percent filter field values

GET http://<host>:<port>/queries/filters/percent?field=fieldName&applicationType={type}

...

Responce: 200 OK, 400 BAD REQUEST if applicationType is not valid

Request: http://localhost<host>:9091<port>/queries/filters/percent?field=fieldName

...

Response: 404 Not Found and Message: Field fieldName does not exist


JSON response

Code Block
languagephp
themeConfluence
{
 "firmwareVersions":
  [
   "firmwareVersion1", "firmwareVersion2"
  ]
}


 XML response

Code Block

<SingletonMap>

languagephp
themeConfluence
<SingletonMap>
    <fieldName>value1</fieldName>

...


    <fieldName>value2</fieldName>

...


</SingletonMap>

Update percent filter

POST http://<host>:<port>/updates/filters/percent?applicationType={type}

...

Percentage should be positive and within [0, 100],  

Request: 

http://localhost<host>:9091<port>/updates/filters/percent.json 

OR

http://localhost<host>:9091<port>/updates/filters/percent


JSON request

Code Block
language

{

php
themeConfluence
{

  "type": "com.comcast.xconf.queries.beans.PercentFilterWrapper",

...



  "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

...

Code Block
languagephp
themeConfluence
<PercentFilterWrapper type="com.comcast.xconf.queries.beans.PercentFilterWrapper"

...

>
 <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>

Retrive EnvModelPercentages

...

Responce: 200 OK, 400 BAD REQUEST

Request: http://localhost<host>:9091<port>/queries/percentageBean


JSON response

Code Block

[

languagephp
themeConfluence
[

 {

...



    "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

...

Code Block
languagephp
themeConfluence
<ArrayList>
 <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>

Retrive EnvModelPercentage by id

GET http://<host>:<port>/queries/percentageBean/id

...

Responce: 200 OK OR 404 if envModelPercentage is not found

Request: http://localhost<host>:9091<port>/queries/percentageBean/4c2cea9e-c1be-4219-8f2a-70084f1cb648


JSON response

Code Block
languagephp

{

themeConfluence
{

    "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

...

Code Block
languagephp
themeConfluence
<PercentageBean>
 <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>

Create envModelPercentage

POST http://<host>:<port>/updates/percentageBean?applicationType={type}

...

Responce: 200 OK, 404 NOT FOUND, 409 CONFLICT, 400 BAD REQUEST

Request: http://localhost<host>:9091<port>/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 firmwareCheckRequired=true, percentage within [0, 100], distribution firmware version should be in minCheck list if firmwareCheckRequired=true, total distribution percentage is within [0, 100], last known good is not empty if total distribution percentage < 100, last known good should be selected in minCheck list.

JSON request

Code Block
language

{

php
themeConfluence
{

    "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

...

Code Block
languagephp
themeConfluence
<PercentageBean>
 <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>

Update EnvModelPercentage 

PUT http://<host>:<port>/updates/percentageBean?applicationType={type}

Headers:

Content-Type = application/json OR application/xml

...

Responce: 200 OK, 404 NOT FOUND, 409 CONFLICT, 400 BAD REQUEST

 Request: http://localhost<host>:9091<port>/queries/percentageBean 

 RestrictionsRestrictions:

 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 firmwareCheckRequired=true, percentage within [0, 100], distribution firmware version should be in minCheck list if firmwareCheckRequired=true, total distribution percentage is within [0, 100], last known good is not empty if total distribution percentage < 100, last known good should be selected in minCheck list.

JSON request

{

Code Block
languagephp
themeConfluence
{

    "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

...

Code Block
languagephp
themeConfluence
<PercentageBean>
 <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 envModelPercentage

DELETE http://<host>:<port>/delete/percentageBean/id

...

Response: 204 NO CONTENT OR 404 NOT FOUND

Request example: http://localhost<host>:9091<port>/delete/percentageBean/testId

Time filter

Retrieve time filter list

GET http://<host>:<port>/queries/filters/time?applicationType={type}

...

Response: 200 OK, 400 BAD REQUEST

Request: http://localhost<host>:9091<port>/queries/filters/time.json OR http://localhost<host>:9091<port>/queries/filters/time

JSON response

[

Code Block
languagephp
themeConfluence
[

  {

...



    "id": "cef2b340-2109-467e-a5d2-a70f0cddb432",

...



    "name": "abc",

...



    "ipWhitelist": {

...



      "id": "0e277b6a-7d95-4421-b390-415b03de04b4",

...



      "name": "60.70.80.90",

...



      "ipAddresses": [

...



        "60.70.80.90"

...



      ]

...



    },

...



    "envModelWhitelist": {

...



      "id": "0f8110a3-4b60-489b-854e-c69e25b18abc",

...



      "environmentId": "QA",

...



      "modelId": "SR150BNC"

...



    },

...



    "neverBlockRebootDecoupled": true,

...



    "neverBlockHttpDownload": true,

...



    "startTime": "01:00",

...



    "endTime": "02:00",

...



    "localTime": true

...



  }

...



]


XML response

<ArrayList>

    <item>

Code Block
languagephp
themeConfluence
<ArrayList>

    <item>

        <id>cef2b340-2109-467e-a5d2-a70f0cddb432</id>

...



        <name>abc</name>

...



        <ipWhitelist>

...



            <id>0e277b6a-7d95-4421-b390-415b03de04b4</id>

...



            <name>60.70.80.90</name>

...



            <ipAddresses>

...



                <ipAddresses>60.70.80.90</ipAddresses>

...



            </ipAddresses>

...



        </ipWhitelist>

...



        <envModelWhitelist>

...



            <id>0f8110a3-4b60-489b-854e-c69e25b18abc</id>

...



            <environmentId>QA</environmentId>

...



            <modelId>SR150BNC</modelId>

...



        </envModelWhitelist>

...



        <neverBlockRebootDecoupled>true</neverBlockRebootDecoupled>

...



        <neverBlockHttpDownload>true</neverBlockHttpDownload>

...



        <startTime>01:00</startTime>

...



        <endTime>02:00</endTime>

...



        <localTime>true</localTime>

...



    </item>

...



</ArrayList>

Retrieve time filter by name

...

Response: 200 OK, 400 BAD REQUEST

Request: http://localhost<host>:9091<port>/queries/filters/time/xcc.td.json OR http://localhost<host>:9091<port>/queries/filters/time/xcc.td

JSON response

Code Block

{

languagephp
themeConfluence
{

    "id": "cef2b340-2109-467e-a5d2-a70f0cddb432",

...



    "name": "abc",

...



    "ipWhitelist": {

...



      "id": "0e277b6a-7d95-4421-b390-415b03de04b4",

...



      "name": "60.70.80.90",

...



      "ipAddresses": [

...



        "60.70.80.90"

...



      ]

...



    },

...



    "envModelWhitelist": {

...



      "id": "0f8110a3-4b60-489b-854e-c69e25b18abc",

...



      "environmentId": "QA",

...



      "modelId": "SR150BNC"

...



    },

...



    "neverBlockRebootDecoupled": true,

...



    "neverBlockHttpDownload": true,

...



    "startTime": "01:00",

...



    "endTime": "02:00",

...



    "localTime": true

...



  }


XML response

<TimeFilterWrapper>

Code Block
languagephp
themeConfluence
<TimeFilterWrapper>

    <id>cef2b340-2109-467e-a5d2-a70f0cddb432</id>

...



    <name>abc</name>

...



    <ipWhitelist>

...



        <id>0e277b6a-7d95-4421-b390-415b03de04b4</id>

...



        <name>60.70.80.90</name>

...



        <ipAddresses>

...



            <ipAddresses>60.70.80.90</ipAddresses>

...



        </ipAddresses>

...



    </ipWhitelist>

...



    <envModelWhitelist>

...



        <id>0f8110a3-4b60-489b-854e-c69e25b18abc</id>

...



        <environmentId>QA</environmentId>

...



        <modelId>SR150BNC</modelId>

...



    </envModelWhitelist>

...



    <neverBlockRebootDecoupled>true</neverBlockRebootDecoupled>

...



    <neverBlockHttpDownload>true</neverBlockHttpDownload>

...



    <startTime>01:00</startTime>

...



    <endTime>02:00</endTime>

...



    <localTime>true</localTime>

...



</TimeFilterWrapper>

Create/update time filter

If time filter is missing it will be being created, otherwise updated. For update operation id field is not needed.

...

Name should be unique

Request: http://localhost<host>:9091<port>/updates/filters/time.json OR http://localhost<host>:9091<port>/updates/filters/time

JSON request

{

Code Block
languagephp
themeConfluence
{

    "id": "cef2b340-2109-467e-a5d2-a70f0cddb432",

...



    "name": "abc",

...



    "ipWhitelist": {

...



      "id": "0e277b6a-7d95-4421-b390-415b03de04b4",

...



      "name": "60.70.80.90",

...



      "ipAddresses": [

...



        "60.70.80.90"

...



      ]

...



    },

...



    "envModelWhitelist": {

...



      "id": "0f8110a3-4b60-489b-854e-c69e25b18abc",

...



      "environmentId": "QA",

...



      "modelId": "SR150BNC"

...



    },

...



    "neverBlockRebootDecoupled": true,

...



    "neverBlockHttpDownload": true,

...



    "startTime": "01:00",

...



    "endTime": "02:00",

...



    "localTime": true

...



  }

XML request

<TimeFilterWrapper>

Code Block
languagephp
themeConfluence
<TimeFilterWrapper>
    <id>cef2b340-2109-467e-a5d2-a70f0cddb432</id>

...


    <name>abc</name>

...


    <ipWhitelist>

...


        <id>0e277b6a-7d95-4421-b390-415b03de04b4</id>

...


        <name>60.70.80.90</name>

...


        <ipAddresses>

...


            <ipAddresses>60.70.80.90</ipAddresses>

...


        </ipAddresses>

...


    </ipWhitelist>

...


    <envModelWhitelist>

...


        <id>0f8110a3-4b60-489b-854e-c69e25b18abc</id>

...


        <environmentId>QA</environmentId>

...


        <modelId>SR150BNC</modelId>

...


    </envModelWhitelist>

...


    <neverBlockRebootDecoupled>true</neverBlockRebootDecoupled>

...


    <neverBlockHttpDownload>true</neverBlockHttpDownload>

...


    <startTime>01:00</startTime>

...


    <endTime>02:00</endTime>

...


    <localTime>true</localTime>

...


</TimeFilterWrapper>

Delete time filter by name

DELETE http://<host>:<port>/delete/filters/time/{timeFilterName}?applicationType={type}

...

Response: 204 NO CONTENT and message: Time Filter successfully deleted OR Filter doesn't exist with name: <filterName>

Request example: http://localhost<host>:9091<port>/delete/filters/time/name

Environment

Retrieve an list of environments

...

Response: 200 OK

Request: http://localhost<host>:9091<port>/queries/environments OR http://localhost<host>:9091<port>/queries/environments.json

XML response

...

Code Block
languagephp
themeConfluence
<ArrayList>
 <item>
  <id>DEV</id>
  <description>ff</description>
 </item>
 <item>
  <id>TEST</id>
  <description>do not delete</description>
 </item>
</ArrayList>

JSON response

Code Block
languagephp
themeConfluence
[{"id":"DEV","description":"ff"},{"id":"TEST","description":"do not delete"}]

Retrieve environment by id

GET http://<host>:<port>/queries/environments/<environmentId>

...

Response: 200 OK; 400 BAD REQUEST

Request: http://localhost<host>:9091<port>/queries/environments/DEV OR http://localhost<host>:9091<port>/queries/environments/DEV.json

JSON response

Code Block
languagephp
themeConfluence
{"id":"DEV","description":"ff"}

XML response

...

Code Block
languagephp
themeConfluence
<Environment>
 <id>DEV</id>
 <description>ff</description>
</Environment>

Create an environment

POST http://<host>:<port>/updates/environments

...

Environment name should be valid by pattern: ^[a-zA-Z0-9]+$, name should be unique

Request: http://localhost<host>:9091<port>/updates/environments OR http://localhost<host>:9091<port>/updates/environments.json

XML request

...

Code Block
languagephp
themeConfluence
<Environment>
 <id>testName</id>
 <description>some description</description>
</Environment>

JSON request

Code Block
languagephp
themeConfluence
{"id":"testName","description":"some description"}

Delete environment by id

DELETE http://<host>:<port>/delete/environments/<environmentId>

...

Environment should be not used

Request: http://localhost<host>:9091<port>/delete/environments/DEV

IP address group

Retrieve an IP address group list

...

Request: Request: http://localhost<host>:9091<port>/queries/ipAddressGroups OR http://localhost<host>:9091<port>/queries/ipAddressGroups.json

XML response

...

Code Block
languagephp
themeConfluence
 <ArrayList>
  <item>
   <id>2c184325-f9eb-4edc-85c3-5b6466fc3c5c</

...

id>
   <name>test</name>
   <ipAddresses>
    <ipAddresses>192.11.11.11</

...

ipAddresses>
   </ipAddresses>
  </item>
 </ArrayList>

JSON response

Code Block
languagephp
themeConfluence
[

...



  {

...



    "id": "2c184325-f9eb-4edc-85c3-5b6466fc3c5c",

...



    "name": "test",

...



    "ipAddresses": [

...



      "192.11.11.11"

...



    ]

...



  }

...



]

Retrieve an IP address group by name

...

Response: 200 OK; 400 BAD REQUEST

Request: http://localhost<host>:9091<port>/queries/ipAddressGroups/byName/test/.json OR http://localhost<host>:9091<port>/queries/ipAddressGroups/byName/test/

JSON response

Code Block
languagephp
themeConfluence
[{"id":"2c184325-f9eb-4edc-85c3-5b6466fc3c5c","name":"test","ipAddresses":["192.11.11.11"]}]

XML response

...

Code Block
languagephp
themeConfluence
<ArrayList>
 <item>
  <id>2c184325-f9eb-4edc-85c3-5b6466fc3c5c</id>
  <name>test</name>
  <ipAddresses>
   <ipAddresses>192.11.11.11</

...

ipAddresses>
  </ipAddresses>
 </item>
</ArrayList>

Retrieve an IP address group by IP

GET http://<host>:<port>/queries/ipAddressGroups/byIp/<ipAddressGroupIp>/

...

Response: 200 OK; 400 BAD REQUEST

Request: http://localhost<host>:9091<port>/queries/ipAddressGroups/byIp/192.11.11.121/.json OR http://localhost<host>:9091<port>/queries/ipAddressGroups/byIp/192.11.11.121/

JSON response

Code Block
languagephp
themeConfluence
[{"id":"2c184325-f9eb-4edc-85c3-5b6466fc3c5c","name":"test","ipAddresses":["192.11.11.11"]}]

XML response

...

Code Block
languagephp
themeConfluence
<ArrayList>
 <item>
  <id>2c184325-f9eb-4edc-85c3-5b6466fc3c5c</

...

id>
  <name>test</name>
  <ipAddresses>
   <ipAddresses>192.11.11.11</

...

ipAddresses>
  </ipAddresses>
 </item>
</ArrayList>

Create an IP address group

POST http://<host>:<port>/updates/ipAddressGroups

...

Name should be not empty and unique

Request: http://localhost<host>:9091<port>/updates/ipAddressGroups.json OR http://localhost<host>:9091<port>/updates/ipAddressGroups

XML request

...

Code Block
languagephp
themeConfluence
<IpAddressGroupExtended>
 <id>2c184325-f9eb-4edc-85c3-5b6466fc3c5c</

...

id>
 <name>test</name>
 <ipAddresses>
  <ipAddresses>192.11.11.11</

...

ipAddresses>
 </ipAddresses>
</IpAddressGroupExtended>

JSON request

Code Block
languagephp
themeConfluence
{"id":"2c184325-f9eb-4edc-85c3-5b6466fc3c5c","name":"test","ipAddresses":["192.11.11.11"]}

Add data to IP Address Group(dev in progress)

POST http://<host>:<port>/updates/ipAddressGroups/<ipAddressGroup_name>/addData

...

ipAddressGroup with current id should be exist, see restrictions for create operation

Request: http://localhost<host>:9091<port>/updates/ipAddressGroups/ipAddressGroup_name/addData.json OR http://localhost<host>:9091<port>/updates/ipAddressGroups/ipAddressGroup_name/addData

JSON request

{

Code Block
languagephp
themeConfluence
{

  "list": [

...



    "1.1.1.1"

...



  ]

...



}

XML request

...

Code Block
languagephp
themeConfluence
<StringListWrapper>
 <list>
  <list>1.1.1.1</

...

list>
 </list>
</StringListWrapper>


Delete data from IP Address Group(dev in progress)

...

List contains IPs, which should be present in current Namespaced list, namespaced list should contain at least one IP address, and restrictions for create operation

Request: http://localhost<host>:9091<port>/updates/ipAddressGroups/ipAddressGroup_name/removeData.json OR http://localhost<host>:9091<port>/updates/ipAddressGroups/ipAddressGroup_name/removeData

JSON request

{

Code Block
languagephp
themeConfluence
{

  "list": [

...



    "1.1.1.1"

...



  ]

...



}


XML request

...

Code Block
languagephp
themeConfluence
<StringListWrapper>
 <list>
  <list>1.1.1.1</

...

list>
 </list>
</StringListWrapper>

Delete an IP address group by id

DELETE http://<host>:<port>/delete/ipAddressGroups/<ipAddressGroupId>

...

IP address group should be not used

Request: http://localhost<host>:9091<port>/delete/ipAddressGroups/607b315b-c744-4c43-87fa-51b17aa92b09

Mac rule

Retrieve a mac rule list (legacy)

...

Response: 200 OK, 400 BAD REQUEST

Request: http://localhost<host>:9091<port>/queries/rules/macs.json OR http://localhost<host>:9091<port>/queries/rules/macs

JSON response

Code Block
languagephp
themeConfluence
[

...



  {

...



    "name": "test",

...



    "macListRef": "macs",

...



    "targetedModelIds": [

...



      "YETST"

...



    ],

...



    "firmwareConfig": {

...



      "id": "b65962b5-1481-4eed-a010-2abfa8c3bbfd",

...



      "description": "_-",

...



      "supportedModelIds": [

...



        "YETST"

...



      ],

...



      "firmwareFilename": "_-",

...



      "firmwareVersion": "_-"

...



    }

...



  }

...



]


XML response

...

Code Block
languagephp
themeConfluence
<ArrayList>
 <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>

Retrieve a mac rule list (v2)

GET http://<host>:<port>/queries/rules/macs?version=2&applicationType={type}

...

Response: 200 OK, 400 BAD REQUEST

Request: http://localhost<host>:9091<port>/queries/rules/macs.json?version=2 OR http://localhost<host>:9091<port>/queries/rules/macs?version=2

JSON response

[

Code Block
languagephp
themeConfluence
[

  {

...



    "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 response

...

Code Block
languagephp
themeConfluence
<ArrayList>
 <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>

Retrieve mac rule by name (legacy)

GET http://<host>:<port>/queries/rules/macs/{macRuleName}?applicationType={type}

...

Response: 200 OK; 

Request: http://localhost<host>:9091<port>/queries/rules/macs/test.json OR http://localhost<host>:9091<port>/queries/rules/macs/test

JSON response

Code Block

[

languagephp
themeConfluence
[

  {

...



    "name": "test",

...



    "macListRef": "macs",

...



    "targetedModelIds": [

...



      "YETST"

...



    ],

...



    "firmwareConfig": {

...



      "id": "b65962b5-1481-4eed-a010-2abfa8c3bbfd",

...



      "description": "_-",

...



      "supportedModelIds": [

...



        "YETST"

...



      ],

...



      "firmwareFilename": "_-",

...



      "firmwareVersion": "_-"

...



    }

...



  }

...



]


XML response

...

Code Block
languagephp
themeConfluence
<MacRuleBeanWrapper>
 <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>

Retrieve mac rule by name (v2)

...

Response: 200 OK; 

Request: http://localhost<host>:9091<port>/queries/rules/macs/test.json?version=2 OR http://localhost<host>:9091<port>/queries/rules/macs/test?version=2

JSON response

[

Code Block
languagephp
themeConfluence
[

  {

...



    "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 response

...

Code Block
languagephp
themeConfluence
<MacRuleBeanWrapper>
 <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>

Retrieve mac rule by mac address (legacy)

...

Response: 200 OK, 400 BAD REQUEST

Request: http://localhost<host>:9091<port>/queries/rules/macs/address/AA:AA:AA:AA:AA:AA.json OR http://localhost<host>:9091<port>/queries/rules/macs/address/AA:AA:AA:AA:AA:AA

JSON response

Code Block
languagephp
themeConfluence
[

...



  {

...



    "name": "test",

...



    "macListRef": "macs",

...



    "targetedModelIds": [

...



      "YETST"

...



    ],

...



    "firmwareConfig": {

...



      "id": "b65962b5-1481-4eed-a010-2abfa8c3bbfd",

...



      "description": "_-",

...



      "supportedModelIds": [

...



        "YETST"

...



      ],

...



      "firmwareFilename": "_-",

...



      "firmwareVersion": "_-"

...



    }

...



  }

...



]


XML response

...

Code Block
languagephp
themeConfluence
<ArrayList>
 <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>

Retrieve mac rule by mac address (v2)

...

 Response: 200 OK, 400 BAD REQUEST

Request: http://localhost<host>:9091<port>/queries/rules/macs/address/AA:AA:AA:AA:AA:AA.json?version=2 OR http://localhost<host>:9091<port>/queries/rules/macs/address/AA:AA:AA:AA:AA:AA?version=2

JSON response

Code Block
languagephp
themeConfluence
[

...



  {

...



    "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 response

...

Code Block
languagephp
themeConfluence
<ArrayList>
 <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>


Create/update mac rule

If mac rule is missing it will be being created, otherwise updated. For update operation id field is not needed.

...

Name, mac address list, model list, mac list, firmware configuration should be not empty, mac address list is never used in another rule, model list contain only existed model, firmware config should support given models

Request: http://localhost<host>:9091<port>/updates/rules/macs.json OR http://localhost<host>:9091<port>/updates/rules/macs

JSON request

Code Block
languagephp
themeConfluence
{

...



  "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

...

Code Block
languagephp
themeConfluence
<MacRuleBeanWrapper>
 <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 mac rule by name

DELETE http://<host>:<port>/delete/rules/macs/{macRuleName}?applicationType={type}

...

Response: 204 NO CONTENT and message: MacRule does'n exist OR MacRule deleted successfully, 400 BAD REQUEST

Request example: http://localhost<host>:9091<port>/delete/rules/macs/macRuleName

Model

Retrieve a model list

GET http://<host>:<port>/queries/models

...

Response: 200 OK

Request: http://localhost<host>:9091<port>/queries/models.json OR http://localhost<host>:9091<port>/queries/models

JSON response

[

Code Block
languagephp
themeConfluence
[

  {

...



    "id": "YETST",

...



    "description": ""

...



  },

...



  {

...



    "id": "PX013ANC",

...



    "description": "Pace XG1v3 - Cisco Cable Card"

...



  }

...



]


XML response

...

Code Block
languagephp
themeConfluence
<ArrayList>
 <item>
  <id>YETST</id>
  <description></description>
 </item>
 <item>
  <id>PX013ANC</id>
  <description>Pace XG1v3 - Cisco Cable Card</description>
 </item>
</ArrayList>

Retrieve model by id

GET http://<host>:<port>/queries/models/<modelId>

...

Response: 200 OK; 204 NO CONTENT

Request: http://localhost<host>:9091<port>/queries/models/YETST.json OR http://localhost<host>:9091<port>/queries/models/YETST

JSON response

Code Block
languagephp
themeConfluence
{

...



  "id": "YETST",

...



  "description": ""

...



}


XML response

...

Code Block
languagephp
themeConfluence
<Model>
 <id>YETST</id>
 <description></description>
</Model>

Create model 

POST http://<host>:<port>/updates/models

...

Model name should be unique and valid by pattern: ^[a-zA-Z0-9]+$ 

Request: http://localhost<host>:9091<port>/updates/models.json OR http://localhost<host>:9091<port>/updates/models

JSON request

Code Block

{

languagephp
themeConfluence
{

  "id": "test",

...



  "description": ""

...



}


XML request

...

<Model><id>YETST</id><description></description></Model>

Code Block
languagephp
themeConfluence
<Model>
 <id>YETST</id>
 <description></description>
</Model>

Update Model Description

PUT

Delete model by id

DELETE http://<host>:<port>/deleteupdates/models/<modelId>

Headers: Accept Content-Type = application/json OR application/xml 

Response: 204 NO CONTENT and message: Model doesn't exist OR Model deleted successfully;

Restrictions:

Model should be not used in another places

Request: http://localhost:9091/delete/models/YETST

NamespacedList

Retrieve all NS lists

GET http://<host>:<port>/queries/nsLists

Headers:

xml Accept = application/json OR application/xml xml

Response: 200 OK; 400 BAD REQUEST; 404 NOT FOUND, 500 INTERNAL SERVER ERROR

Request: http://localhost:9091/queriesupdates/nsListsmodels.json OR http://localhost:9091/queriesupdates/nsListsmodels

JSON response

[

  {

Request

Code Block
languagephp
themeConfluence
{
  

...

"id":

...

 "

...

test",

...


  "description":

...

      "AA:AA:AA:AA:AA:AA"

    ]

  }

]

XML response

...

<ArrayList><item><id>macs</id><data><data>AA:AA:AA:AA:AA:AA</data></data></item></ArrayList>

 "description update"
}


XML Request

Code Block
languagephp
themeConfluence
<Model><id>test</id><description>description update</description></Model>


Delete model by id

DELETE http://<host>:<port>/delete/models/<modelId>

Headers:

Accept = application/json OR application/xml 

Response: 204 NO CONTENT and message: Model doesn't exist OR Model deleted successfully;

Restrictions:

Model should be not used in another places

Request: http://<host>:<port>/delete/models/YETST

NamespacedList

Retrieve all NS lists

...

GET http://<host>:<port>/queries/nsLists/byId/<nsListId>

Headers:

Accept = application/json OR application/xml 

Response: 200 OK

Request: http://localhost<host>:9091<port>/queries/nsLists/byId/macs..json OR http://localhost<host>:9091<port>/queries/nsLists/byId/macs

JSON response

{

Code Block
languagephp
themeConfluence
[

  {

    

...

"id": "macs",

...



    "data": [

...



      "AA:AA:AA:AA:AA:AA"

...



    ]

  }

]

}


XML response

...

Code Block
languagephp
themeConfluence
<ArrayList>
 <item>
  <id>macs</id>
  <data>
   <data>AA:AA:AA:AA:AA:AA<

...

/data>
  </data>
 </item>
</ArrayList>

Retrieve an NS list by id:

...

GET http://<host>:<port>/queries/nsLists/byMacPartbyId/<macAddressPart><nsListId>

Headers:

Accept = application/json OR application/xml 

Response: 200 OK

Request: http://localhost<host>:9091<port>/queries/nsLists/byMacPartbyId/AA:AAmacs.json OR http://localhost<host>:9091<port>/queries/nsLists/byMacPartbyId/AA:AAmacs


JSON response

Code Block
languagephp
themeConfluence
{

...



  "id": "macs",

...



  "data": [

...



    "AA:AA:AA:AA:AA:AA"

...



  ]

...



}


XML response

...

Code Block
languagephp
themeConfluence
<NamespacedList>
 <id>macs</id>
 <data>
  <data>AA:AA:AA:AA:AA:AA</

...

data>
 </data>
</NamespacedList>

...

Retrieve NS list by mac part

POST GET http://<host>:<port>/updatesqueries/nsLists/byMacPart/<macAddressPart>

Headers:Content-Type = application/json OR application/xml

Accept = 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 be not empty and contain valid mac addresses, mac address should be used only in one NS list200 OK

Request: http://localhost<host>:9091<port>/updatesqueries/nsLists/byMacPart/AA:AA.json OR http://localhost<host>:9091<port>/updatesqueries/nsLists/byMacPart/AA:AA

JSON request

{

response

Code Block
languagephp
themeConfluence
{

  "id"

...

: "macs",

...



  "data": [

...



    "AA:AA:AA:AA:AA:AA"

...



  ]

...



}


XML request

...

response

Code Block
languagephp
themeConfluence
<NamespacedList>
 <id>macs</id>
 <data>
  <data>AA:AA:AA:AA:AA:AA</

...

data>
</data></NamespacedList>

...

Create a NS list

POST http://<host>:<port>/updates/nsLists/<nsListId>/addDataPOST http://<host>:<port>/updates/nslist/<nsListId>/addData - legacy endpoint

Headers:

Content-Type = application/json OR application/xml

Accept = application/json OR application/xmlxml 

Response: 200 OK and NS list object (see get request)201 CREATED; 400 BAD REQUEST; 500 INTERNAL SERVER ERROR

Restrictions: 

Name should be valid by pattern: ^[a-zA-Z0-9]+$, list data should be not empty and contain valid mac addresses, mac address should be used only in one NS listNS list with current id should be exist, see restrictions for create operation

Request: http://localhost<host>:9091<port>/updates/nsLists/listName/addData.json OR http://localhost<host>:9091<port>/updates/nsLists/listName/addData

JSON request

...

{

  "list": [

    "11:22:33:44:55:66"

  ]

}

Code Block
languagephp
themeConfluence
{

  "id": "macs",

  "data": [

    "AA:AA:AA:AA:AA:AA"

  ]

}


XML request

Code Block
languagephp
themeConfluence
<NamespacedList>
 <id>macs</id>
 <data>
  <data>AA:AA:AA:AA:AA:AA</data>
 </data>
</NamespacedList>

Add data to NS list

POST

XML request

...

<StringListWrapper><list><list>11:22:33:44:55:66</list></list></StringListWrapper>

Delete data from NS list

DELETE http://<host>:<port>/updates/nsLists/<nsListId>/removeDataaddData

DELETE POST http://<host>:<port>/updates/nslist/<nsListId>/removeData addData - legacy endpoint

Headers:

...

Accept = application/json OR application/xml

Response: 204 NO CONTENT 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 List contains MACs, which should be present in current Namespaced list, namespaced list should contain at least one MAC address, and restrictions for create operation

Request: http://localhost<host>:9091<port>/updates/nsLists/listName/removeDataaddData.json OR http://localhost<host>:9091<port>/updates/nsLists/listName/removeDataaddData

JSON request

Code Block
languagephp

{

themeConfluence
{

  "list": [

...



    "11:22:33:44:55:66"

...



  ]

...



}


XML request

...

Code Block
languagephp
themeConfluence
<StringListWrapper>
 <list>
  <list>11:22:33:44:55:66</

...

list>
 </list>
</StringListWrapper>

Delete

...

data from NS list

...

DELETE http://<host>:<port>/deleteupdates/nsLists/<nsListId>/removeData

DELETE http://<host>:<port>/updates/nslist/<nsListId>/removeData - legacy endpoint

Headers:

Content-Type = application/json OR application/xml

Accept = application/json OR application/xml

Response: 200 OK and message: NamespacedList doesn't exist OR NamespacedList successfully deleted;204 NO CONTENT and NS list object (see get request); 400 BAD REQUEST

Restrictions:

NS list List contains MACs, which should be not used in another placespresent in current Namespaced list, namespaced list should contain at least one MAC address, and restrictions for create operation

Request: httpRequest: http://localhost<host>:9091<port>/deleteupdates/nsLists/listName/removeData.json OR http://localhost<host>:9091<port>/deleteupdates/nsLists/listName

RebootImmediately filter

Retrieve an RI filter list

/removeData

JSON request

Code Block
languagephp
themeConfluence
{

  "list": [

    "11:22:33:44:55:66"

  ]

}


XML request

Code Block
languagephp
themeConfluence
<StringListWrapper>
 <list>
  <list>11:22:33:44:55:66</list>
 </list>
</StringListWrapper>

Delete an NS list by id

DELETE GET http://<host>:<port>/queriesdelete/filters/ri?applicationType={type}nsLists/<nsListId>

Headers:

Accept = application/json OR application/xml

applicationType is not required, default value is stb

Response: 200 OK and message: NamespacedList doesn't exist OR NamespacedList successfully deleted;

Restrictions:

NS list should be not used in another places

Request: http://<host>:<port>/delete/nsLists/listName.json OR http://<host>:<port>/delete/nsLists/listName

RebootImmediately filter

Retrieve an RI filter list

GET http://<host>:<port>/queries/filters/ri?applicationType={type}

Headers:

Accept = application/json OR application/xml

applicationType is not required, default value is stb

Response: 200 OK, 400 BAD REQUEST

Request: http://localhost<host>:9091<port>/queries/filters/ri.json OR http://localhost<host>:9091<port>/queries/filters/ri

JSON response

Code Block
languagephp
themeConfluence
[

...



  {

...



    "macAddresses": "[AA:AA:AA:AA:AA:AA]",

...



    "environments": [

...



      "TEST"

...



    ],

...



    "models": [

...



      "YETST"

...



    ],

...



    "id": "7f6d54d8-69e1-44c3-bb28-e1ed2f5b016f",

...



    "name": "u"

...



  }

...



]


XML response

...

Code Block
languagephp
themeConfluence
<ArrayList>
 <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>


Retrieve and RI filter by rule name

...

Response: 200 OK, 400 BAD REQUEST

Request: http://localhost<host>:9091<port>/queries/filters/ri/testName.json OR http://localhost<host>:9091<port>/queries/filters/ri/testName

JSON response

Code Block

{

languagephp
themeConfluence
{

  "macAddresses": "AA:AA:AA:AA:AA:AA",

...



  "environments": [

...



    "TEST"

...



  ],

...



  "models": [

...



    "YETST"

...



  ],

...



  "id": "7f6d54d8-69e1-44c3-bb28-e1ed2f5b016f",

...



  "name": "testName"

...



}


XML response

...

Code Block
languagephp
themeConfluence
<RebootImmediatelyFilter>
 <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>

Create/update an RI filter

...

Name should be not empty, at least one of filter criteria should be specified, mac addresses should be valid

Request: http://localhost<host>:9091<port>/updates/filters/ri.json OR http://localhost<host>:9091<port>/updates/filters/ri

JSON request

Code Block

{

languagephp
themeConfluence
{

  "macAddresses": "AA:AA:AA:AA:AA:AA",

...



  "environments": [

...



    "TEST"

...



  ],

...



  "models": [

...



    "YETST"

...



  ],

...



  "id": "7f6d54d8-69e1-44c3-bb28-e1ed2f5b016f",

...



  "name": "testName"

...



}


XML request

...

Code Block
languagephp
themeConfluence
<RebootImmediatelyFilter>
 <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 RI filter by name

DELETE http://<host>:<port>/delete/filters/ri/{riFilterName}?applicationType={type}

...

Response: 204 NO CONTENT and message: Filter does't exist OR Successfully deleted, 400 BAD REQUEST

Request: http://localhost<host>:9091<port>/delete/filters/ri/testName

...

{"firmwareVersions":["PR150BN_2.1p5s2_VBN_HYBse","PXD01ANI_2.1p10s1_PROD_sdy"]}


FirmwareRuleTemplate


Retrieve filtered templates


GET http://<host>:<port>/firmwareruletemplate/filtered?name=MAC_RULE&key=someKey

Headers: Accept = application/json, Content-Type = application/json

Request params:

  1. Without params:
    Retrieve all firmware rule templates.
  2. 'name': 
    To filter templates by name.
  3. 'key':
    To filter by rule key
  4. 'value':
    to filter by rule value

Parameters could be combined: 

'?name=someName&value=testValue'


Import firmware rule templates


POST http://<host>:<port>/firmwareruletemplate/importAll

Headers: Accept = application/json

Content-Type = application/json


Request body is list of firmware rule templates:


Code Block
languagephp
themeConfluence
[
    {
        "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:

Response body:

Code Block
languagephp
themeConfluence
{
    "NOT_IMPORTED": [],
    "IMPORTED": []
}

Response codes: 200, 400, 404, 409


FirmwareRule


Retrieve all firmware rules


GET http://<host>:<port>/firmwarerule Headers: Accept = application/json

Response body

Code Block
languagephp
themeConfluence
[
  {
    "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"
  }
]


Retrieve filtered firmware rules

GET http://<host>:<port>/firmwarerule/filtered?tepmlateId=TEST_ID&key=firmwareVersion

Headers: Accept = application/json, Content-Type = application/json

Request params:

'applicationType' param is required.

  1. 'name: 
     'name=someName'
    To filter templates by name.
  2. 'key':
    'key=someKey'
    To filter by rule key
  3. 'value':
    'value=someValue'
    to filter by rule value
  4. 'firmwareVersion':
    'firmwareVersion=testFirmwareVersion'
    to filter by firmware version
  5. 'templateId':
    'templateId=testTemplate'
    to filter by template
  6. 'applicationType':
    'applicationType=stb'
    to filter by application type

Parameters could be combined: 

'?applicationType=stb&value=someValue'


Import firmware rule

POST http://<host>:<port>/firmwarerule/importAll

Headers: Accept = application/json Content-Type = application/json

Request body is list of firmware rules:

Code Block
languagephp
themeConfluence
[
  {
    "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:


Code Block
languagephp
themeConfluence
{
    "NOT_IMPORTED": [],
    "IMPORTED": ["testName"]
}


Response codes: 200, 400, 404, 409


Feature

Retrieve all features

GET http://<host>:<port>/feature

Headers: Accept = application/json

Response body

Code Block
languagephp
themeConfluence
[
  {
        "id": "27a9d55e-0f0c-4809-b171-8357613f0efa",
        "name": "name",
        "featureName": "featureName",
        "effectiveImmediate": false,
        "enable": false,
        "whitelisted": false,
        "configData": {
            "key1": "value1"
        },
        "whitelistProperty": {},
        "applicationType": "stb"
    }
]


Retrieve filtered features

GET http://<host>:<port>/feature/filtered?

Headers: Accept = application/json, Content-Type = application/json


Request params:

'APPLICATION_TYPE' param is required.

  1. NAME: 
    'NAME=someName'
    To filter features by name
  2. FEATURE_INSTANCE
    'FEATURE_INSTANCE=someInstance'
    To filter features by instance
  3. FREE_ARG:
    'FREE_ARG=someKey'
    To filter by property key
  4. FIXED_ARG:
    'FIXED_ARG=someValue'
    to filter by property value
  5. APPLICATION_TYPE:
    'APPLICATION_TYPE=stb'
    to filter by application type

Parameters could be combined: 

'?APPLICATION_TYPE=stb&FIXED_ARG=someValue'


Import feature


POST http://<host>:<port>/feature/importAll

Headers: Accept = application/json Content-Type = application/json

Request body is list of features:

Code Block
languagephp
themeConfluence
[
  {
        "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:

Code Block
languagephp
themeConfluence
{
    "NOT_IMPORTED": [],
    "IMPORTED": ["featureID"]
}

Response codes: 200, 400, 409


Create feature


POST http://<host>:<port>/feature

Headers: Accept = application/json Content-Type = application/json

Request body is feature json object

Code Block
languagephp
themeConfluence
{
	"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.

Update feature


PUT http://<host>:<port>/feature

Headers: Accept = application/json Content-Type = application/json

Request body is feature json object


Code Block
languagephp
themeConfluence
{
	"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 feature

DELETE http://<host>:<port>/feature/{id}

Response codes: 204, 404, 409.


Feature Rule

Retrieve all feature rules

GET http://<host>:<port>/featurerule

Headers: Accept = application/json

Response body

Code Block
languagephp
themeConfluence
[
    {
        "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.

Retrieve filtered feature rules

GET http://<host>:<port>/featurerule/filtered?

Headers: Accept = application/json, Content-Type = application/json

Request params:

'APPLICATION_TYPE' param is required.

  1. NAME: 
    'NAME=ruleName'
    to filter feature rule by name
  2. FREE_ARG:
    'FREE_ARG=someKey'
    to filter by feature rule key
  3. FIXED_ARG:
    'FIXED_ARG=someValue'
    to filter by feature rule value
  4. FEATURE:
    'FEATURE=featureInstance'
    to filter by feature instance.
  5. APPLICATION_TYPE:
    'APPLICATION_TYPE=stb'
    to filter by application type

Parameters could be combined: 

'?APPLICATION_TYPE=stb&FIXED_ARG=someValue'

Import feature rule

If feature rule with provided id does not exist it is imported otherwise updated.

POST http://<host>:<port>/featurerule/importAll

Headers: Accept = application/json Content-Type = application/json

Request body is list of feature rules:

Code Block
languagephp
themeConfluence
[
	{
        "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"
	}
]

Return list of imported and not imported feature rule IDs:

Response body:


Code Block
languagephp
themeConfluence
{
    "NOT_IMPORTED": [],
    "IMPORTED": ["featureRuleId"]
}

Response codes: 200, 400, 404, 409


Create feature rule


POST http://<host>:<port>/featurerule

Headers: Accept = application/json Content-Type = application/json

Request body is feature rule json object

Code Block
languagephp
themeConfluence
{
    "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.


Update feature rule


PUT http://<host>:<port>/featurerule

Headers: Accept = application/json Content-Type = application/json

Request body is feature rule json object

Code Block
languagephp
themeConfluence
{
    "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 feature rule


DELETE http://<host>:<port>/featurerule/{id}

Response codes: 204, 404, 409.

Activation Minimum Version

Retrieve all activation minimum versions

GET http://<host>:<port>/amv

Headers: Accept = application/json

Response body

Code Block
languagephp
themeConfluence
[
	{
        "id": "42670af7-6ea2-485f-9aee-1fa5895d655b",
        "applicationType": "stb",
        "description": "Activation Version",
        "regularExpressions": [],
        "model": "MX011AN",
        "firmwareVersions": [
            "FIRMWARE_VERSION"
        ]
    }
]

Response codes: 200.


Retrieve filtered activation minimum versions


GET http://<host>:<port>/amv/filtered?

Headers: Accept = application/json, Content-Type = application/json


Request params:

'applicationType' param is required.

  1. DESCRIPTION: 
    'DESCRIPTION=description'
    to filter feature rule by description.
  2. MODEL:
    'MODEL=model'
    to filter by feature rule key
  3. PARTNER_ID:
    'PARTNER_ID=partnerId'
    to filter by feature rule value
  4. FIRMWARE_VERSION:
    'FIRMWARE_VERSION=firmwareVersion'
    to filter by feature name.
  5. REGULAR_EXPRESSION:
    'REGULAR_EXPRESSION=regularExpression'
  6. APPLICATION_TYPE:
    'APPLICATION_TYPE=stb'
    to filter by application type

Parameters could be combined: 

'?APPLICATION_TYPE=stb&MODEL=modelId'


Import activation version:

If activation minimum version with provided id does not exist it is imported otherwise updated.

POST http://<host>:<port>/amv/importAll

Headers: Accept = application/json Content-Type = application/json

Request body is list of activation minimum version:

Code Block
languagephp
themeConfluence
[
	{
        "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 version IDs:

Response body:


Code Block
languagephp
themeConfluence
{
    "NOT_IMPORTED": [],
    "IMPORTED": ["42670af7-6ea2-485f-9aee-1fa5895d655b"]
}

Response codes: 200, 400, 404, 409

Create activation minimum version

POST http://<host>:<port>/amv

Headers: Accept = application/json Content-Type = application/json

Request body is activation minimum version json object

Code Block
languagephp
themeConfluence
{
	"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 version.


Update activation minimum version


PUT http://<host>:<port>/amv Headers: Accept = application/json Content-Type = application/json

Request body is activation minimum version json object

Code Block
languagephp
themeConfluence
{
	"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 version.


Delete activation minimum version

DELETE http://<host>:<port>/amv/{id}

Response codes: 204, 404, 409.