You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

Firmware Config

Retrieve a list of firmware configs

Request


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


Headers:

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:9091/queries/firmwares.json OR http://localhost:9091/queries/firmwares


JSON response:


{

  "id": "firmwareConfigId",

  "description": "FirmwareDescription",

  "supportedModelIds": [

    "MODELA"

  ],

  "firmwareFilename": "FirmwareFilename",

  "firmwareVersion": "FirmwareVersion"

}


XML response

<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

GET http://<host>:<port>/queries/firmwares/<firmwareConfigId>

Headers:

Accept = application/json OR application/xml

Response: 200 OK

Request: 

http://localhost:9091/queries/firmwares/b65962b5-1481-4eed-a010-2abfa8c3bbfd

 OR 

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


JSON response

{

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

  "updated": 1440492963476,

  "description": "_-",

  "supportedModelIds": [

    "YETST"

  ],

  "firmwareDownloadProtocol": "tftp",

  "firmwareFilename": "_-",

  "firmwareVersion": "_-",

  "rebootImmediately": false

}


XML response

<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 

GET http://<host>:<port>/queries/firmwares/model/{modelId}?applicationType={type}

Headers:

Accept = application/json OR application/xml

applicationType parameter is not required, default value is stb

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

Request: 

http://localhost:9091/queries/firmwares/model/YETST.json

 OR 

http://localhost:9091/queries/firmwares/model/YETST


JSON response

[{

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

  "updated": 1440492963476,

  "description": "_-",

  "supportedModelIds": [

    "YETST"

  ],

  "firmwareDownloadProtocol": "tftp",

  "firmwareFilename": "_-",

  "firmwareVersion": "_-",

  "rebootImmediately": false

}]


XML response

<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

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

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

Headers:

Content-Type = application/json OR application/xml

Accept = application/json OR application/xml

applicationType param is not required, default value is stb

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

Request: 

http://localhost:9091/updates/firmwares.json

 OR 

http://localhost:9091/updates/firmwares

Restrictions: 

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


JSON request

{

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

  "updated": 1440492963476,

  "description": "_-",

  "supportedModelIds": [

    "YETST"

  ],

  "firmwareDownloadProtocol": "tftp",

  "firmwareFilename": "_-",

  "firmwareVersion": "_-",

  "rebootImmediately": false

}


XML request

<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

DELETE http://<host>:<port>/delete/firmwares/<firmwareConfigId>

Headers:

Accept = application/json OR application/xml

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

Request:

http://localhost:9091/delete/firmwares/b65962b5-1481-4eed-a010-2abfa8c3bbfd

IP rules

Retrieve an ip rule list

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

Headers:

Accept = application/json OR application/xml

Default value for applicationType parameter is stb

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

Request: 

http://localhost:9091/queries/rules/ips.json

 OR 

http://localhost:9091/queries/rules/ips


JSON response

[

  {

    "id": "ddc07355-d253-4f6b-8b42-296819d0d094",

    "name": "fsd",

    "ipAddressGroup": {

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

      "name": "test",

      "ipAddresses": [

        "192.11.11.11"

      ]

    },

    "environmentId": "DEV",

    "modelId": "YETST",

    "noop": true,

    "expression": {

      "targetedModelIds": [

      ],

      "environmentId": "DEV",

      "modelId": "YETST",

      "ipAddressGroup": {

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

        "name": "test",

        "ipAddresses": [

          "192.11.11.11"

        ]

      }

    }

  }

]


XML response

<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

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

Headers:

Accept = application/json OR application/xml

Default value for applicationType parameter is stb

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

Request: 

http://localhost:9091/queries/rules/ips/fsd.json

 OR 

http://localhost:9091/queries/rules/ips/fsd


JSON response

{

  "id": "ddc07355-d253-4f6b-8b42-296819d0d094",

  "name": "fsd",

  "ipAddressGroup": {

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

    "name": "test",

    "ipAddresses": [

      "192.11.11.11"

    ]

  },

  "environmentId": "DEV",

  "modelId": "YETST",

  "noop": true,

  "expression": {

    "targetedModelIds": [

       

    ],

    "environmentId": "DEV",

    "modelId": "YETST",

    "ipAddressGroup": {

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

      "name": "test",

      "ipAddresses": [

        "192.11.11.11"

      ]

    }

  }

}


XML response

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

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

Headers:

Content-Type = application/json OR application/xml

Accept = application/json OR application/xml

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

Restrictions:

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

Request: 

http://localhost:9091/updates/rules/ips.json 

OR

 http://localhost:9091/updates/rules/ips


JSON request

{
  "id": "ddc07355-d253-4f6b-8b42-296819d0d094",

  "name": "fsd",

  "ipAddressGroup": {

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

    "name": "test",

    "ipAddresses": [

      "192.11.11.11"

    ]

  },

  "environmentId": "DEV",

  "modelId": "YETST",

  "noop": true,

  "expression": {

    "targetedModelIds": [

    ],

    "environmentId": "DEV",

    "modelId": "YETST",

    "ipAddressGroup": {

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

      "name": "test",

      "ipAddresses": [

        "192.11.11.11"

      ]
    }
  }
}


XML request

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

Headers:

Accept = application/json OR application/xml

applicationType parameter is not required, default value is stb

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:9091/delete/rules/ips/ruleName

Location filter

Retrieve a location filter list

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

Headers:

Accept = application/json OR application/xml

applicationType parameter is not required, default value is stb

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

Request: 

http://localhost:9091/queries/filters/locations.json 

OR

 http://localhost:9091/queries/filters/locations


JSON response

[

  {

    "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

<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

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

or legacy endpoint

GET http://<host>:<port>/queries/filters/locations/byName/{locationFilterName}

Headers:

Accept = application/json OR application/xml

Response: 200 OK

Request: 

http://localhost:9091/queries/filters/locations/name.json

 OR 

http://localhost:9091/queries/filters/locations/name


JSON response

[

  {

    "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

<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

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

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

Headers:

Content-Type = application/json OR application/xml

Accept = application/json OR application/xml

applicationType parameter is not required, default value is stb

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

Restrictions:

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

Request: 

http://localhost:9091/updates/filters/locations.json

 OR 

http://localhost:9091/updates/filters/locations


XML request

<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

{

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

Headers:

Accept = application/json OR application/xml

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:9091/delete/filters/location/name

Download location filter

Retrieve download location filter

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

Headers:

Accept = application/json OR application/xml

applicationType param is not required, default value is stb

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

Request: 

http://localhost:9091/queries/filters/downloadlocation.json

 OR 

http://localhost:9091/queries/filters/downloadlocation


JSON response

 {

   "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

<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

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

Headers:

Content-Type = application/json OR application/xml

Accept = application/json OR application/xml

applicationType param is not required, default value is stb

Response: 200 OK and saved object (see get request); 400 BAD REQUEST; 500 INTERNAL SERVER ERROR

 

Restrictions:

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

Request: 

http://localhost:9091/updates/filters/downloadlocation.json 

OR 

http://localhost:9091/updates/filters/downloadlocation.json


JSON request

 {

  "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

<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

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

Headers:

Accept = application/json OR application/xml

applicationType param is not required, default value is stb

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

Request: 

http://localhost:9091/queries/rules/envModels.json 

OR 

http://localhost:9091/queries/rules/envModels


JSON response

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

[

  {

    "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

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

<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

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

Headers:

Accept = application/json OR application/xml

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

Request: 

http://localhost:9091/queries/rules/envModels/testName.json 

OR 

http://localhost:9091/queries/rules/envModels/testName.json


JSON response

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

{

  "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

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

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

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

Headers:

Content-Type = application/json OR application/xml

Accept = application/json OR application/xml

applicationType param is not required, default value is stb

Response: 200 OK and saved object (see get request); 400 BAD REQUEST; 500 INTERNAL SERVER ERROR

Restrictions: 

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

Request: 

http://localhost:9091/updates/rules/envModels.json

 OR 

http://localhost:9091/updates/rules/envModels


JSON request

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

{

  "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

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

<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

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

Headers:

Accept = application/json OR application/xml

applicationType param is not required, default value is stb

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:9091/delete/rules/envModels/testName.json

IP filter

Retrieve an IP filter list

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

Headers:

Accept = application/json OR application/xml

applicationType param is not required, default value is stb

Responce: 200 OK, 400 BAD REQUEST

Request: 

http://localhost:9091/queries/filters/ips.json

 OR 

http://localhost:9091/queries/filters/ips 


JSON response

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

[

  {

    "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

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

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

Headers:

Accept = application/json OR application/xml

applicationType param is not required, default value is stb

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

Request: 

http://localhost:9091/queries/filters/ips/namef.json 

OR 

http://localhost:9091/queries/filters/ips/namef.json


JSON response

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

{

  "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

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

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

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

Headers:

Content-Type = application/json OR application/xml

Accept = application/json OR application/xml

applicationType param is not required, default value is stb

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

Restrictions: 

Name, IP address group should be not empty

Request: 

http://localhost:9091/updates/filters/ips.json

 OR 

http://localhost:9091/updates/filters/ips


JSON request

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

{

    "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

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

<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

DELETE http://<host>:<port>/delete/filters/ips/{ipFilterName}?applicationType={stb}

Headers:

Accept = application/json OR application/xml

applicationType param is not required, default value is stb

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:9091/delete/filters/ips/namef

Percent filter

Retrieve percent filter

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

Headers:

Accept = application/json OR application/xml

applicationType param is not required, default value is stb

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


Request: 

http://localhost:9091/queries/filters/percent.json 

OR 

http://localhost:9091/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

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

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

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

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

Headers:

Accept = application/json OR application/xml

applicationType param is not required, default value is stb

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

Request: http://localhost:9091/queries/filters/percent?field=fieldName

if fied does not exists: 

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


JSON response

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

{"firmwareVersions":["firmwareVersion1", "firmwareVersion2"]}

 

XML response

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

<SingletonMap>

    <fieldName>value1</fieldName>

    <fieldName>value2</fieldName>

</SingletonMap>

Update percent filter

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

Headers:

Content-Type = application/json OR application/xml

Accept = application/json OR application/xml 

applicationType param is not required, default value is stb

Response: 200 OK and saved object (see get request); 400 BAD REQUEST; 500 INTERNAL SERVER ERROR

Restrictions:

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

Request: 

http://localhost:9091/updates/filters/percent.json 

OR

http://localhost:9091/updates/filters/percent


JSON request

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

{

  "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

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

<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

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

Headers:

Content-Type = application/json OR application/xml

Accept = application/json OR application/xml

applicationType param is not required, default value is stb

Responce: 200 OK, 400 BAD REQUEST

Request: http://localhost:9091/queries/percentageBean


JSON response

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

[

 {

    "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

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

<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

Headers:

Content-Type = application/json OR application/xml

Accept = application/json OR application/xml

Responce: 200 OK OR 404 if envModelPercentage is not found

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


JSON response

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

{

    "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

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

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

Headers:

Content-Type = application/json OR application/xml

Accept = application/json OR application/xml 

applicationType param is not valid, default value is stb

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

Request: http://localhost:9091/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

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

{

    "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

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

<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

Accept = application/json OR application/xml 

applicationType param is not required, default value is stb

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

 Request: http://localhost:9091/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

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

{

    "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

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

<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

Headers:

Content-Type = application/json OR application/xml

Accept = application/json OR application/xml 

Response: 204 NO CONTENT OR 404 NOT FOUND

Request example: http://localhost:9091/delete/percentageBean/testId

Time filter

Retrieve time filter list

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

Headers:

Accept = application/json OR application/xml

applicationType param is not required, default value is stb

Response: 200 OK, 400 BAD REQUEST

Request: http://localhost:9091/queries/filters/time.json OR http://localhost:9091/queries/filters/time

JSON response

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

[

  {

    "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

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

<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

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

Headers:

Accept = application/json OR application/xml

applicationType param is not required, default value is stb

Response: 200 OK, 400 BAD REQUEST

Request: http://localhost:9091/queries/filters/time/xcc.td.json OR http://localhost:9091/queries/filters/time/xcc.td

JSON response

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

{

    "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

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

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

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

Headers:

Content-Type = application/json OR application/xml

Accept = application/json OR application/xml

applicationType param is not required, default value is stb

Response: 200 OK and saved object (see get request), 400 BAD REQUEST, 500 INTERNAL SERVER ERROR

Restrictions:

Name should be unique

Request: http://localhost:9091/updates/filters/time.json OR http://localhost:9091/updates/filters/time

JSON request

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

{

    "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

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

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

Headers:

Accept = application/json OR application/xml

applicationType is not required, default value is stb

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

Request example: http://localhost:9091/delete/filters/time/name

Environment

Retrieve an list of environments

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

Headers:

Accept = application/json OR application/xml 

Response: 200 OK

Request: http://localhost:9091/queries/environments OR http://localhost:9091/queries/environments.json

XML response

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

 <ArrayList><item><id>DEV</id><description>ff</description></item><item><id>TEST</id><description>do not delete</description></item></ArrayList>

JSON response

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

[{"id":"DEV","description":"ff"},{"id":"TEST","description":"do not delete"}]

Retrieve environment by id

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

Headers:

Accept = application/json OR application/xml 

Response: 200 OK; 400 BAD REQUEST

Request: http://localhost:9091/queries/environments/DEV OR http://localhost:9091/queries/environments/DEV.json

JSON response

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

{"id":"DEV","description":"ff"}

XML response

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

<Environment><id>DEV</id><description>ff</description></Environment>

Create an environment

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

Headers:

Content-Type: application/json OR application/xml

Accept = application/json OR application/xml 

Response: 200 OK and saved object (see get request); 400 BAD REQUEST; 500 INTERNAL SERVER ERROR

Restrictions:

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

Request: http://localhost:9091/updates/environments OR http://localhost:9091/updates/environments.json

XML request

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

 <Environment><id>testName</id><description>some description</description></Environment>

JSON request

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

{"id":"testName","description":"some description"}

Delete environment by id

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

Headers:

Accept = application/json OR application/xml 

Response: 204 NO CONTENT and message: Environment doesn't exist OR Environment successfully deleted; 400 BAD REQUEST: Environment is used: <usage place> 

Restrictions: 

Environment should be not used

Request: http://localhost:9091/delete/environments/DEV

IP address group

Retrieve an IP address group list

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

Headers:

Accept = application/json OR application/xml 

Response: 200 OK

Request: Request: http://localhost:9091/queries/ipAddressGroups OR http://localhost:9091/queries/ipAddressGroups.json

XML response

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

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

JSON response

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

[

  {

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

    "name": "test",

    "ipAddresses": [

      "192.11.11.11"

    ]

  }

]

Retrieve an IP address group by name

GET http://<host>:<port>/queries/ipAddressGroups/byName/<ipAddressGroupName>/

Headers:

Accept = application/json OR application/xml 

Response: 200 OK; 400 BAD REQUEST

Request: http://localhost:9091/queries/ipAddressGroups/byName/test/.json OR http://localhost:9091/queries/ipAddressGroups/byName/test/

JSON response

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

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

XML response

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

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

Headers:

Accept = application/json OR application/xml 

Response: 200 OK; 400 BAD REQUEST

Request: http://localhost:9091/queries/ipAddressGroups/byIp/192.11.11.121/.json OR http://localhost:9091/queries/ipAddressGroups/byIp/192.11.11.121/

JSON response

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

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

XML response

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

<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

Headers:

Content-Type: application/json OR application/xml

Accept = application/json OR application/xml 

Response: 200 OK and saved object (see get request); 400 BAD REQUEST; 500 INTERNAL SERVER ERROR

Restrictions: 

Name should be not empty and unique

Request: http://localhost:9091/updates/ipAddressGroups.json OR http://localhost:9091/updates/ipAddressGroups

XML request

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

 <IpAddressGroupExtended><id>2c184325-f9eb-4edc-85c3-5b6466fc3c5c</id><name>test</name><ipAddresses><ipAddresses>192.11.11.11</ipAddresses></ipAddresses></IpAddressGroupExtended>

JSON request

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

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

Headers:

Content-Type = application/json OR application/xml

Accept = application/json OR application/xml

Response: 200 OK and ipAddressGroup object (see get request); 400 BAD REQUEST; 500 INTERNAL SERVER ERROR

Restrictions: 

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

Request: http://localhost:9091/updates/ipAddressGroups/ipAddressGroup_name/addData.json OR http://localhost:9091/updates/ipAddressGroups/ipAddressGroup_name/addData

JSON request

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

{

  "list": [

    "1.1.1.1"

  ]

}

XML request

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

<StringListWrapper><list><list>1.1.1.1</list></list></StringListWrapper>

Delete data from IP Address Group(dev in progress)

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

Headers:

Content-Type = application/json OR application/xml

Accept = application/json OR application/xml

Response: 204 NO CONTENT and ipAddressGroup object (see get request); 400 BAD REQUEST

Restrictions:

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:9091/updates/ipAddressGroups/ipAddressGroup_name/removeData.json OR http://localhost:9091/updates/ipAddressGroups/ipAddressGroup_name/removeData

JSON request

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

{

  "list": [

    "1.1.1.1"

  ]

}

XML request

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

<StringListWrapper><list><list>1.1.1.1</list></list></StringListWrapper>

Delete an IP address group by id

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

Headers:

Accept = application/json OR application/xml 

Response: 204 NO CONTENT and message: IpAddressGroup doesn't exist OR IpAddressGroup successfully deleted; 400 BAD REQUEST: IpAddressGroup is used: <usage place> 

Restrictions: 

IP address group should be not used

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

Mac rule

Retrieve a mac rule list (legacy)

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

Headers:

Accept = application/json OR application/xml 

applicationType is not required, default value is stb

With no version parameter or version < 2. Legacy query.

Response: 200 OK, 400 BAD REQUEST

Request: http://localhost:9091/queries/rules/macs.json OR http://localhost:9091/queries/rules/macs

JSON response

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

[

  {

    "name": "test",

    "macListRef": "macs",

    "targetedModelIds": [

      "YETST"

    ],

    "firmwareConfig": {

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

      "description": "_-",

      "supportedModelIds": [

        "YETST"

      ],

      "firmwareFilename": "_-",

      "firmwareVersion": "_-"

    }

  }

]

XML response

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

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

Headers:

Accept = application/json OR application/xml 

applicationType is not required, default value is stb

Version parameter could any number >= 2.

Response: 200 OK, 400 BAD REQUEST

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

JSON response

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

[

  {

    "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

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

Headers:

Accept = application/json OR application/xml

applicationType is not required, default value is stb

With no version parameter or version < 2. Legacy query.

Response: 200 OK; 

Request: http://localhost:9091/queries/rules/macs/test.json OR http://localhost:9091/queries/rules/macs/test

JSON response

[

  {

    "name": "test",

    "macListRef": "macs",

    "targetedModelIds": [

      "YETST"

    ],

    "firmwareConfig": {

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

      "description": "_-",

      "supportedModelIds": [

        "YETST"

      ],

      "firmwareFilename": "_-",

      "firmwareVersion": "_-"

    }

  }

]


XML response

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

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

Headers:

Accept = application/json OR application/xml

applicationType is not required, default value is stb

Version parameter could any number >= 2.

Response: 200 OK; 

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

JSON response

[

  {

    "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

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

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

Headers:

Accept = application/json OR application/xml

applicationType is not required, default value is stb

With no version parameter or version < 2. Legacy query.

Response: 200 OK, 400 BAD REQUEST

Request: http://localhost:9091/queries/rules/macs/address/AA:AA:AA:AA:AA:AA.json OR http://localhost:9091/queries/rules/macs/address/AA:AA:AA:AA:AA:AA

JSON response

[

  {

    "name": "test",

    "macListRef": "macs",

    "targetedModelIds": [

      "YETST"

    ],

    "firmwareConfig": {

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

      "description": "_-",

      "supportedModelIds": [

        "YETST"

      ],

      "firmwareFilename": "_-",

      "firmwareVersion": "_-"

    }

  }

]


XML response

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

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

Headers:

Accept = application/json OR application/xml

applicationType is not required, default value is stb

Version parameter could any number >= 2.

 Response: 200 OK, 400 BAD REQUEST

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

JSON response

[

  {

    "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

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

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

Headers:

Content-Type = application/json OR application/xml

Accept = application/json OR application/xml

applicationType is not required, default value is stb

Response: 200 OK; 201 CREATED; 400 BAD REQUEST; 500 INTERNAL SERVER ERROR

Restrictions: 

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:9091/updates/rules/macs.json OR http://localhost:9091/updates/rules/macs

JSON request

{

  "id": "18542fe1-94f2-487c-8f41-9f20965648f5",

  "name": "test",

  "macListRef": "macs",

  "targetedModelIds": [

    "YETST"

  ],

  "firmwareConfig": {

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

    "description": "_-",

    "supportedModelIds": [

      "YETST"

    ],

    "firmwareFilename": "_-",

    "firmwareVersion": "_-"

  },

  "macList": [

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

  ]

}


XML request

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

Headers:

Accept = application/json OR application/xml

applicationType is not required, default value is stb

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

Request example: http://localhost:9091/delete/rules/macs/macRuleName

Model

Retrieve a model list

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

Headers:

Accept = application/json OR application/xml 

Response: 200 OK

Request: http://localhost:9091/queries/models.json OR http://localhost:9091/queries/models

JSON response

[

  {

    "id": "YETST",

    "description": ""

  },

  {

    "id": "PX013ANC",

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

  }

]


XML response

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

Headers:

Accept = application/json OR application/xml 

Response: 200 OK; 204 NO CONTENT

Request: http://localhost:9091/queries/models/YETST.json OR http://localhost:9091/queries/models/YETST

JSON response

{

  "id": "YETST",

  "description": ""

}


XML response

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

Create model 

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

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: 

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

Request: http://localhost:9091/updates/models.json OR http://localhost:9091/updates/models

JSON request

{

  "id": "test",

  "description": ""

}


XML request

<Model>
 <id>YETST</id>
 <description></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://localhost:9091/delete/models/YETST

NamespacedList

Retrieve all NS lists

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

Headers:

Accept = application/json OR application/xml 

Response: 200 OK

Request: http://localhost:9091/queries/nsLists.json OR http://localhost:9091/queries/nsLists

JSON response

[

  {

    "id": "macs",

    "data": [

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

Retrieve an NS list by id:

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

Headers:

Accept = application/json OR application/xml 

Response: 200 OK

Request: http://localhost:9091/queries/nsLists/byId/macs.json OR http://localhost:9091/queries/nsLists/byId/macs


JSON response

{

  "id": "macs",

  "data": [

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

  ]

}


XML response

<NamespacedList>
 <id>macs</id>
 <data>
  <data>AA:AA:AA:AA:AA:AA</data>
 </data>
</NamespacedList>

Retrieve NS list by mac part

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

Headers:

Accept = application/json OR application/xml 

Response: 200 OK

Request: http://localhost:9091/queries/nsLists/byMacPart/AA:AA.json OR http://localhost:9091/queries/nsLists/byMacPart/AA:AA

JSON response

{

  "id": "macs",

  "data": [

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

  ]

}


XML response

<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

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 list

Request: http://localhost:9091/updates/nsLists.json OR http://localhost:9091/updates/nsLists

JSON request

{

  "id": "macs",

  "data": [

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

  ]

}


XML request

<NamespacedList>
 <id>macs</id>
 <data>
  <data>AA:AA:AA:AA:AA:AA</data>
 </data>
</NamespacedList>

Add data to NS list

POST http://<host>:<port>/updates/nsLists/<nsListId>/addData

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

Headers:

Content-Type = application/json OR application/xml

Accept = application/json OR application/xml

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

Restrictions: 

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

Request: http://localhost:9091/updates/nsLists/listName/addData.json OR http://localhost:9091/updates/nsLists/listName/addData

JSON request

{

  "list": [

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

  ]

}


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>/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: 204 NO CONTENT and NS list object (see get request); 400 BAD REQUEST

Restrictions:

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:9091/updates/nsLists/listName/removeData.json OR http://localhost:9091/updates/nsLists/listName/removeData

JSON request

{

  "list": [

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

  ]

}


XML request

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

Delete an NS list by id

DELETE http://<host>:<port>/delete/nsLists/<nsListId>

Headers:

Accept = application/json OR application/xml

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://localhost:9091/delete/nsLists/listName.json OR http://localhost:9091/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:9091/queries/filters/ri.json OR http://localhost:9091/queries/filters/ri

JSON response

[

  {

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

    "environments": [

      "TEST"

    ],

    "models": [

      "YETST"

    ],

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

    "name": "u"

  }

]


XML response

<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

GET http://<host>:<port>/queries/filters/ri/{ruleName}?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:9091/queries/filters/ri/testName.json OR http://localhost:9091/queries/filters/ri/testName

JSON response

{

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

  "environments": [

    "TEST"

  ],

  "models": [

    "YETST"

  ],

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

  "name": "testName"

}


XML response

<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

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

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

Headers:

Accept = application/json OR application/xml

applicationType is not required, default value is stb

Response: 200 OK; 201 CREATED; 400 BAD REQUEST; 500 INTERNAL SERVER ERROR

Restrictions: 

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

Request: http://localhost:9091/updates/filters/ri.json OR http://localhost:9091/updates/filters/ri

JSON request

{

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

  "environments": [

    "TEST"

  ],

  "models": [

    "YETST"

  ],

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

  "name": "testName"

}


XML request

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

Headers:

Accept = application/json OR application/xml

applicationType is not required, default value is stb

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

Request: http://localhost:9091/delete/filters/ri/testName

firmwareCheckRequired

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


  • No labels