Home
[RDK Central Wiki]
CMF
[Code Releases]
Note: These are xconfadmin Go REST APIs
Table of Contents | ||
---|---|---|
|
In any application aware endpoint, applicationType is a mandatory query parameter.
Code Block |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
} |
id need not be specified in the json-input. The system generates one and the same is returned as part of the response
No Format |
---|
GET http://<host>:<port>/queries/firmwares?applicationType={type}
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType is a mandatory parameter
Response: 200 OK OR 400 BAD REQUEST
Code Block | ||
---|---|---|
| ||
[
{
"id": "6e56b056-18dc-475d-b77c-db46c8e4ae9f",
"updated": 1682695879622,
"description": "Test description",
"supportedModelIds": [
"MODELID"
],
"firmwareFilename": "firmware-file-name-signed.bin",
"firmwareVersion": "FIRMWARE_VERSION",
"applicationType": "stb",
"firmwareDownloadProtocol": "tftp",
"rebootImmediately": false
}
] |
NEW CHANGES:
Code Block | ||
---|---|---|
| ||
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "Model: ABC does not exist"
} |
No Format |
---|
GET http://<host>:<port>/queries/firmwares/{firmware config id}?applicationType={type}
Headers:
Accept = application/json
Content-Type = application/json |
applicationType is a mandatory parameter
Response: 200 OK
Code Block | ||
---|---|---|
| ||
{
"id": "6e56b056-18dc-475d-b77c-db46c8e4ae9f",
"updated": 1682695879622,
"description": "Test description",
"supportedModelIds": [
"MODELID"
],
"firmwareFilename": "firmware-file-name-signed.bin",
"firmwareVersion": "FIRMWARE_VERSION",
"applicationType": "stb",
"firmwareDownloadProtocol": "tftp",
"rebootImmediately": false
} |
NEW CHANGES:
Code Block | ||
---|---|---|
| ||
{
"status": 404,
"type": "EntityNotFoundException",
"message": "Entity with id: 6e56b056-18dc-475d-b77c-db46c8e4ae9 does not exist"
} |
No Format |
---|
GET http://<host>:<port>/queries/firmwares/model/{modelId}?applicationType={type}
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType is a mandatory parameter
Response: 200 OK, 400 BAD REQUEST, 404 NOT FOUND.
Code Block | ||
---|---|---|
| ||
[
{
"id": "93296dfd-68a9-40c7-87d0-ec9c2fe9fde4",
"description": "Test description",
"supportedModelIds": [
"MODEL1",
"MODEL2",
"MODEL3"
],
"firmwareFilename": "firmware-file-name-signed.bin",
"firmwareVersion": "FIRMWARE_VERSION"
}
] |
NEW CHANGES:
Code Block | ||
---|---|---|
| ||
{
"status": 404,
"type": "EntityNotFoundException",
"message": "Entity with id: 6e56b056-18dc-475d-b77c-db46c8e4ae9 does not exist"
} |
For creates, use POST method and don't specify id in the input json. Generated id is returned in the response.
For updates, use PUT method and id is a mandatory field in the input json.
No Format |
---|
POST http://<host>:<port>/updates/firmwares?applicationType={type}
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType is a mandatory parameter
Response: 200 OK(for successful updates), 201 CREATED (for successful creates), 400 BAD REQUEST, 409 CONFLICT
Restrictions: Description, firmwareFilename, firmwareVersion, supportedModelIds should be not empty;
Code Block | ||
---|---|---|
| ||
{
"description": "new firmware config",
"supportedModelIds": [
"MODEL1"
],
"firmwareFilename": "firmware-file-name.bin",
"firmwareVersion": "TEST_FIRMWARE_VERSION_AAA"
} |
Response
Code Block | ||
---|---|---|
| ||
{
"id": "a646defa-e3eb-472a-96c4-396358419e99",
"updated": 1688075477160,
"description": "new firmware config",
"supportedModelIds": [
"ABC"
],
"firmwareFilename": "firmware-file-name.bin",
"firmwareVersion": "TEST_FIRMWARE_VERSION_AAA",
"applicationType": "stb",
"firmwareDownloadProtocol": "tftp",
"rebootImmediately": false
} |
NEW CHANGES:
Code Block | ||
---|---|---|
| ||
{
"status": 404,
"type": "EntityNotFoundException",
"message": "Entity with id: 6e56b056-18dc-475d-b77c-db46c8e4ae9 does not exist"
} |
No Format |
---|
DELETE http://<host>:<port>/delete/firmwares/{firmware config id}?applicationType={type}
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType is a mandatory parameter
Response: 204 NO CONTENT, 404 NOT FOUND.
NEW CHANGES:
Code Block | ||
---|---|---|
| ||
{
"status": 404,
"type": "EntityNotFoundException",
"message": "\"FirmwareConfig with id does not exist\""
} |
No Format |
---|
GET http://<host>:<port>/queries/rules/ips?applicationType={type}
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType parameter is required.
Response: 200 OK, 400 BAD REQUEST.
Code Block | ||
---|---|---|
| ||
[ {
"id": "7c68118c-5a3b-4fad-8868-aeb7ccf1430b",
"name": "IP RULE",
"ipAddressGroup": {
"id": "All_Warehouse",
"name": "All_Warehouse",
"ipAddresses": [
"10.10.10.10"
]
},
"environmentId": "DEV",
"modelId": "MODEL1",
"expression": {
"targetedModelIds": [],
"environmentId": "DEV",
"modelId": "MODEL1",
"ipAddressGroup": {
"id": "All_Warehouse",
"name": "All_Warehouse",
"ipAddresses": [
"10.10.10.10"
]
}
},
"noop": true
} ] |
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
} |
No Format |
---|
GET http://<host>:<port>/queries/rules/ips/{ipRuleName}?applicationType={type}
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType parameter is required.
Response: 200 OK, 400 BAD REQUEST.
Code Block | ||
---|---|---|
| ||
{
"id": "7c68118c-5a3b-4fad-8868-aeb7ccf1430b",
"name": "IP RULE",
"ipAddressGroup": {
"id": "All_Warehouse",
"name": "All_Warehouse",
"ipAddresses": [
"10.10.10.10"
]
},
"environmentId": "DEV",
"modelId": "MODEL1",
"expression": {
"targetedModelIds": [],
"environmentId": "DEV",
"modelId": "MODEL1",
"ipAddressGroup": {
"id": "All_Warehouse",
"name": "All_Warehouse",
"ipAddresses": [
"10.10.10.10"
]
}
},
"noop": true
} |
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
} |
For creates, use POST method and don't specify id in the input json. Generated id is returned in the response.
For updates, use PUT method and id is a mandatory field in the input json.
No Format |
---|
POST http://<host>:<port>/updates/rules/ips?applicationType={type}
Headers:
Accept = application/json
Content-Type = application/json
|
Response: 200 OK(for successful updates), 201 CREATED (for successful creates) 400 BAD REQUEST, 409 CONFLICT
Restrictions:
Name, environmentId, modelId, ipAddressGroup should be specified.
Code Block | ||
---|---|---|
| ||
{
"name": "IP RULE GOLANG API",
"ipAddressGroup": {
"id": "IP_RULE",
"name": "IP_RULE",
"ipAddresses": [
"10.10.10.10"
]
},
"environmentId": "DEVTEST",
"modelId": "MODEL1",
"expression": {
"targetedModelIds": [],
"environmentId": "DEVTEST",
"modelId": "MODEL1",
"ipAddressGroup": {
"id": "IP_RULE",
"name": "IP_RULE",
"ipAddresses": [
"10.10.10.10"
]
}
},
"noop": true
} |
Response
Code Block | ||
---|---|---|
| ||
{
"id": "8cbbfeb8-5fd3-4bba-ab87-5250abb54caf",
"firmwareConfig": null,
"name": "IP RULE GOLANG API",
"ipAddressGroup": {
"id": "IP_RULE",
"name": "IP_RULE",
"ipAddresses": [
"10.10.10.10"
]
},
"environmentId": "DEVTEST",
"modelId": "MODEL1",
"expression": {
"targetedModelIds": [],
"environmentId": "DEVTEST",
"modelId": "MODEL1",
"ipAddressGroup": {
"id": "IP_RULE",
"name": "IP_RULE",
"ipAddresses": [
"10.10.10.10"
]
}
},
"noop": true
} |
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
} |
No Format |
---|
DELETE http://<host>:<port>/delete/rules/ips/{ipRuleName}?applicationType={type}
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType parameter is required.
Response: 204 NO CONTENT, 400 BAD REQUEST.
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
} |
No Format |
---|
GET http://<host>:<port>/queries/filters/locations?applicationType={type}
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType parameter is required.
Response: 200 OK, 400 BAD REQUEST.
Code Block | ||
---|---|---|
| ||
[
{
"ipAddressGroup": {
"id": "All_Warehouse",
"name": "All_Warehouse",
"ipAddresses": [
"111.111.111.111/28",
"111.111.111.111/27",
"111.111.111.111/28",
]
},
"environments": null,
"models": null,
"httpLocation": "changed-test.com",
"forceHttp": true,
"id": "2456ec78-3986-4c4d-95aa-1f8d96e9c831",
"name": "location filter go ui"
}
] |
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
} |
No Format |
---|
GET http://<host>:<port>/queries/filters/locations/{locationFilterName}?applicationType={type}
or legacy endpoint
GET http://<host>:<port>/queries/filters/locations/byName/{locationFilterName}?applicationType={type}
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType parameter is required.
Response: 200 OK, 400 BAD REQUEST.
Code Block | ||
---|---|---|
| ||
{
"ipAddressGroup": {
"id": "All_Warehouse",
"name": "All_Warehouse",
"ipAddresses": [
"111.111.111.111/28",
"111.111.111.111/27",
"111.111.111.111/28",
]
},
"environments": null,
"models": null,
"httpLocation": "changed-test.com",
"forceHttp": true,
"id": "2456ec78-3986-4c4d-95aa-1f8d96e9c831",
"name": "location filter go ui"
} |
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
} |
For creates, use POST method and don't specify id in the input json. Generated id is returned in the response.
For updates, use PUT method and id is a mandatory field in the input json.
No Format |
---|
POST http://<host>:<port>/updates/filters/locations?applicationType={type}
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType request parameter is required.
Response: 200 OK(for successful updates), 201 CREATED (for successful creates), 400 BAD REQUEST, 500 INTERNAL SERVER ERROR.
Restrictions:
Condition, models, environments, IPv4, location, any location (HTTP or firmware), IPv4/IPv6 should be valid
Code Block | ||
---|---|---|
| ||
{
"ipAddressGroup": {
"id": "All_Contec_Warehouse",
"name": "All_Contec_Warehouse",
"ipAddresses": [
"111.111.111.111/28",
"111.111.111.111/27",
"111.111.111.111/28",
]
},
"httpLocation": "changed-test.com",
"forceHttp": true,
"name": "newly created location filter"
} |
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
} |
Delete location filter by name
No Format |
---|
DELETE http://<host>:<port>/delete/filters/locations/{locationFilterName}?applicationType={type}
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType parameter is mandatory.
Response: 204 NO CONTENT, 400 BAD REQUEST
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
} |
No Format |
---|
GET http://<host>:<port>/queries/filters/downloadlocation?applicationType={type}
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType param is required.
Response: 200 OK, 400 BAD REQUEST.
Code Block | ||
---|---|---|
| ||
{
"id": "DOWNLOAD_LOCATION_ROUND_ROBIN_FILTER_VALUE",
"updated": 1682697865183,
"type": "com.xconf.estbfirmware.DownloadLocationRoundRobinFilterValue",
"applicationType": "stb",
"locations": [
{
"locationIp": "11.111.110.11",
"percentage": 100
}
],
"ipv6locations": [
{
"locationIp": "2600:1111:2271:c00:767a:abc0:12bb:ab23",
"percentage": 100
}
],
"httpLocation": "http://localhost:8080",
"httpFullUrlLocation": "http://localhost:8080/cgi-bin/x1-sign-redirect.pl?K=10&F=stb_cdl"
} |
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
} |
No Format |
---|
POST http://<host>:<port>/updates/filters/downloadlocation?applicationType={type}
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType param is required.
Response: 200 OK, 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
Code Block | ||
---|---|---|
| ||
{
"id": "DOWNLOAD_LOCATION_ROUND_ROBIN_FILTER_VALUE",
"type": "com.xconf.estbfirmware.DownloadLocationRoundRobinFilterValue",
"locations": [
{
"locationIp": "11.11.111.11",
"percentage": 100
}
],
"ipv6locations": [
{
"locationIp": “1000:abc1:123b:c00:345a:afd0:12bb:aba6",
"percentage": 100
}
],
"httpLocation": "http://localhost:8080",
"httpFullUrlLocation": http://localhost:8080/cgi-bin/x1-sign-redirect.pl?K=10&F=stb_cdl"
} |
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
} |
No Format |
---|
GET http://<host>:<port>/queries/rules/envModels?applicationType={type}
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType param is required.
Response: 200 OK, 400 BAD REQUEST.
Code Block | ||
---|---|---|
| ||
[
{
"id": "57c30790-c8ad-4341-b52f-5cd1f5f6c169",
"name": "TEST 2",
"environmentId": "DEV",
"modelId": "MODEL1"
},
{
"id": "0e714df9-d8a5-4d85-8cd2-cf8198786ae0",
"name": "GOLANG API TEST",
"modelId": "MODEL1",
"firmwareConfig": {
"id": "28f76243-99c3-4e49-8a25-14b9ac995949",
"updated": 1688682880943,
"description": "Test Description",
"supportedModelIds": [
"MODEL1",
"MODEL2",
"MODEL3"
],
"firmwareFilename": "firmware-file-name.bin",
"firmwareVersion": "TEST_FIRMWARE_VERSION_AAA",
"applicationType": "stb",
"firmwareDownloadProtocol": "tftp",
"properties": {
"test key": "test value"
}
}
}
] |
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
} |
No Format |
---|
GET http://<host>:<port>/queries/rules/envModels/{envModelRuleName}?applicationType={type}
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType parameter is required.
Response: 200 OK, 400 BAD REQUEST.
Code Block | ||
---|---|---|
| ||
{
"id": "0e714df9-d8a5-4d85-8cd2-cf8198786ae0",
"name": "GOLANG API TEST",
"modelId": "AX013AN",
"firmwareConfig": {
"id": "28f76243-99c3-4e49-8a25-14b9ac995949",
"updated": 1688682880943,
"description": "TEst Desciprion ",
"supportedModelIds": [
"MODEL1",
"MODEL2",
"MODEL3"
],
"firmwareFilename": "firmware-file-name.bin",
"firmwareVersion": "TEST_FIRMWARE_VERSION_AAA",
"applicationType": "stb",
"firmwareDownloadProtocol": "tftp",
"properties": {
"test key": "test value"
}
}
} |
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
} |
For creates, use POST method and don't specify id in the input json. Generated id is returned in the response.
For updates, use PUT method and id is a mandatory field in the input json.
No Format |
---|
POST http://<host>:<port>/updates/rules/envModels?applicationType={type}
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType param is required.
Response: 200 OK(for successful updates), 201 CREATED (for successful creates), 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
Code Block | ||
---|---|---|
| ||
{
"id": "3da7412c-c75e-4c40-8c48-d2fa32de5f6b",
"name": "GOLANG API TEST",
"modelId": "AX013AN",
"environmentId": "PROD",
"firmwareConfig": {
"id": "28f76243-99c3-4e49-8a25-14b9ac995949",
"description": "TEst Desciprion",
"supportedModelIds": [
"MODEL1",
"MODEL2",
"MODEL3" ],
"firmwareFilename": "firmware-file-name.bin",
"firmwareVersion": "TEST_FIRMWARE_VERSION_AAA",
"applicationType": "stb",
"firmwareDownloadProtocol": "tftp",
"properties": {
"test key": "test value"
}
}
} |
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
} |
No Format |
---|
DELETE http://<host>:<port>/delete/rules/envModels/{envModelRuleName}?applicationType={type}
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType param is required
Response: 204 NO CONTENT.
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
} |
No Format |
---|
GET http://<host>:<port>/queries/filters/ips?applicationType={type}
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType param is required.
Responce: 200 OK, 400 BAD REQUEST.
Code Block | ||
---|---|---|
| ||
[
{
"id": "6cefae40-b85b-429d-ac6d-d754883e17bc",
"name": "TEST IP RULE",
"ipAddressGroup": {
"id": "All_Lab",
"name": "All_Lab",
"ipAddresses": [
"10.10.10.10"
]
},
"warehouse": false
}
] |
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
} |
No Format |
---|
GET http://<host>:<port>/queries/filters/ips/{ipFilterName}?applicationType={type}
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType param is required.
Response: 200 OK, 400 BAD REQUEST.
Code Block | ||
---|---|---|
| ||
{
"id": "6cefae40-b85b-429d-ac6d-d754883e17bc",
"name": "TEST IP RULE",
"ipAddressGroup": {
"id": "All_Lab",
"name": "All_Lab",
"ipAddresses": [
"10.10.10.10"
]
},
"warehouse": false
} |
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
} |
For creates, use POST method and don't specify id in the input json. Generated id is returned in the response.
For updates, use PUT method and id is a mandatory field in the input json.
No Format |
---|
POST http://<host>:<port>/updates/filters/ips?applicationType={type}
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType param is required.
Response: 200 OK(for successful updates), 201 CREATED (for successful creates), 400 BAD REQUEST, 500 INTERNAL SERVER ERROR.
Restrictions:
Name, IP address group should be not empty
Code Block | ||
---|---|---|
| ||
{
"name": "TEST IP RULE",
"ipAddressGroup": {
"id": "All_Lab",
"name": "All_Lab",
"ipAddresses": [
"10.10.10.10"
]
},
"warehouse": false
} |
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "Name is already used"
} |
Response: 200 OK and message: IpRuleId is empty OR IpFilter successfully deleted
No Format |
---|
DELETE http://<host>:<port>/delete/filters/ips/{ipFilterName}?applicationType={type}
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType param is required, default value is stb
Response: 204 NO CONTENT, 400 BAD REQUEST if applicationType is not valid
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
} |
No Format |
---|
GET http://<host>:<port>/queries/filters/percent?applicationType={type}
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType parameter is required
Response: 200 OK, 400 BAD REQUEST if applicationType is not valid
Info | ||
---|---|---|
| ||
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. |
Code Block | ||
---|---|---|
| ||
{
"id": "PERCENT_FILTER_VALUE",
"type": "com.xconf.queries.beans.PercentFilterWrapper",
"whitelist": {
"id": "All_Warehouses_00RDATEST",
"name": "All_Warehouses_00RDATEST",
"ipAddresses": [
"11.1.111.111"
]
},
"percentage": 100,
"EnvModelPercentages": [
{
"percentage": 79,
"active": false,
"firmwareCheckRequired": true,
"rebootImmediately": false,
"lastKnownGood": "firmware-file-name.bin",
"intermediateVersion": "firmware-file-name.bin",
"whitelist": {
"id": "All_Test_List",
"name": "All_Test_List",
"ipAddresses": [
"10.10.10.10"
]
},
"firmwareVersions": [
"TEST_FIRMWARE_VERSION_AAA",
"TEST_FIRMWARE_VERSION_AAA",
"TEST_FIRMWARE_VERSION_AAA"
],
"name": "Test Percentage Bean"
}
]
}
|
NEW CHANGES:
Code Block |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
} |
No Format |
---|
GET http://<host>:<port>/queries/filters/percent?field=fieldName&applicationType={type}
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType parameter is required
Response: 200 OK, 400 BAD REQUEST
Code Block | ||
---|---|---|
| ||
{
"firmwareVersions": [
"VERSION_1",
"VERSION_2"
]
} |
NEW CHANGES:
Code Block |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
} |
No Format |
---|
POST http://<host>:<port>/updates/filters/percent?applicationType={type}
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType parameter is required
Response: 200 OK, 400 BAD REQUEST if applicationType is not valid
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],
Code Block | ||
---|---|---|
| ||
{
"type": "com.xconf.queries.beans.PercentFilterWrapper",
"id": "PERCENT_FILTER_VALUE",
"percentage": 99.0,
"EnvModelPercentages": [
{
"percentage": 100.0,
"active": false,
"firmwareCheckRequired": false,
"rebootImmediately": false,
"firmwareVersions": [
],
"name": "test"
},
{
"percentage": 100.0,
"active": false,
"firmwareCheckRequired": false,
"rebootImmediately": false,
"firmwareVersions": [
],
"name": "test"
}
]
} |
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "Env/Model does not match with existed Env/Model"
} |
Retrieve Percentage Bean
No Format |
---|
GET http://<host>:<port>/queries/percentageBean?applicationType={type}
Headers:
Content-Type = application/json
Accept = application/json
|
applicationType parameter is required
Response: 200 OK, 400 BAD REQUEST if applicationType is not valid
Code Block | ||
---|---|---|
| ||
[{
"id": "8141de7e-5ef0-4e4e-9c29-cc20bf6f8d8a",
"name": "Test1",
"active": true,
"firmwareCheckRequired": true,
"rebootImmediately": true,
"firmwareVersions": [
"version1",
"xconftestmodel",
"version2"
],
"distributions": [
{
"configId": "version1",
"percentage": 15,
"startPercentRange": 0,
"endPercentRange": 15
},
{
"configId": "xconftestmodel",
"percentage": 45,
"startPercentRange": 15,
"endPercentRange": 60
},
{
"configId": "version2",
"percentage": 40,
"startPercentRange": 60,
"endPercentRange": 100
}
],
"applicationType": "stb",
"environment": "TEST",
"model": "XCONFTESTMODEL",
"optionalConditions": {
"condition": {
"freeArg": {
"type": "STRING",
"name": "Test1"
},
"operation": "IS",
"fixedArg": {
"bean": {
"value": {
"java.lang.String": "true"
}
}
}
},
"negated": false
},
"useAccountIdPercentage": true
}
] |
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "Env/Model does not match with existed Env/Model"
} |
No Format |
---|
GET http://<host>:<port>/queries/percentageBean/id?applicationType={type}
Headers:
Content-Type = application/json
Accept = application/json
|
applicationType parameter is required.
Response: 200 OK OR 404 if envModelPercentage is not found
Code Block | ||
---|---|---|
| ||
{
"id": "0f111a83-030c-45b1-111e-a06e75aaaaa8b",
"name": "Test",
"active": true,
"firmwareCheckRequired": true,
"rebootImmediately": true,
"firmwareVersions": [
"Model1",
"Model2"
],
"distributions": [
{
"configId": "Model1",
"percentage": 100,
"startPercentRange": 0,
"endPercentRange": 100
}
],
"applicationType": "stb",
"environment": "QA",
"model": "TEST",
"useAccountIdPercentage": false
} |
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "Env/Model does not match with existed Env/Model"
} |
No Format |
---|
POST http://<host>:<port>/updates/percentageBean?applicationType={type}
Headers:
Content-Type = application/json
Accept = application/json
|
applicationType parameter is required
Response: 200 OK, 400 BAD REQUEST if applicationType is not valid
Responce: 200 OK(for successful updates), 201 CREATED (for successful creates), 404 NOT FOUND, 409 CONFLICT, 400 BAD REQUEST
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.
Code Block | ||
---|---|---|
| ||
{
"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
}
]
} |
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "Env/Model does not match with existed Env/Model"
} |
No Format |
---|
PUT http://<host>:<port>/updates/percentageBean?applicationType={type}
Headers:
Content-Type = application/json
Accept = application/json
|
applicationType parameter is required.
Response: 200 OK, 404 NOT FOUND, 409 CONFLICT, 400 BAD REQUEST
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.
Code Block | ||
---|---|---|
| ||
{
"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
}
]
} |
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "Env/Model does not match with existed Env/Model"
} |
No Format |
---|
DELETE http://<host>:<port>/delete/percentageBean/{percentage bean id}?applicationType={type}
Headers:
Content-Type = application/json
Accept = application/json
|
Response: 204 NO CONTENT OR 404 NOT FOUND
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "Env/Model does not match with existed Env/Model"
} |
No Format |
---|
GET http://<host>:<port>/queries/filters/time?applicationType={type}
Headers:
Accept = application/json
|
NEW CHANGES:
Response: 200 OK, 400 BAD REQUEST
Code Block | ||
---|---|---|
| ||
[
{
"id": "11a905b0-7557-400c-a51d-8eaf2e5b987e",
"name": "TEST TIME FILTER",
"ipWhitelist": {
"id": "IP ADDRESS LIST",
"name": "IP ADDRESS LIST",
"ipAddresses": [
"10.10.10.10"
]
},
"envModelWhitelist": {
"environmentId": "PROD",
"modelId": "MODEL1"
},
"neverBlockRebootDecoupled": true,
"neverBlockHttpDownload": true,
"startTime": "01:00",
"endTime": "02:00",
"localTime": false
}
] |
No Format |
---|
GET http://<host>:<port>/queries/filters/time/{name}?applicationType={type}
Headers:
Accept = application/json
Authorization = {SAT token} |
NEW CHANGES:
Response: 200 OK, 400 BAD REQUEST
Code Block | ||
---|---|---|
| ||
{
"id": "11a905b0-7557-400c-a51d-8eaf2e5b987e",
"name": "TEST TIME FILTER",
"ipWhitelist": {
"id": "All_Lab",
"name": "All_Lab",
"ipAddresses": [
"10.10.10.10"
]
},
"envModelWhitelist": {
"environmentId": "PROD",
"modelId": "MODEL1"
},
"neverBlockRebootDecoupled": true,
"neverBlockHttpDownload": true,
"startTime": "01:00",
"endTime": "02:00",
"localTime": false
} |
For creates, use POST method and don't specify id in the input json. Generated id is returned in the response.
For updates, use PUT method and id is a mandatory field in the input json.
No Format |
---|
POST http://<host>:<port>/updates/filters/time?applicationType={type}
Headers:
Content-Type = application/json
Accept = application/json
|
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "Env/Model does not match with existed Env/Model"
} |
Response: 200 OK(for successful updates), 201 CREATED (for successful creates) and saved object (see get request), 400 BAD REQUEST, 500 INTERNAL SERVER ERROR
Restrictions:
Code Block | ||
---|---|---|
| ||
{
"id": "11a905b0-7557-400c-a51d-8eaf2e5b987e",
"name": "TEST TIME FILTER",
"ipWhitelist": {
"id": "All_Lab",
"name": "All_Lab",
"ipAddresses": [
"10.10.10.10"
]
},
"envModelWhitelist": {
"id": "0543974f-992f-4756-8318-b6ebb2db0fa5",
"environmentId": "PROD",
"modelId": "MODEL1"
},
"neverBlockRebootDecoupled": true,
"neverBlockHttpDownload": true,
"startTime": "01:00",
"endTime": "02:00",
"localTime": false
} |
No Format |
---|
DELETE http://<host>:<port>/delete/filters/time/{timeFilterName}?applicationType={type}
Headers:
Accept = application/json
|
NEW CHANGES:
Response: 204 NO CONTENT and message: Time Filter successfully deleted OR Filter doesn't exist with name: <filterName>
No Format |
---|
GET http://<host>:<port>/queries/environments
Headers:
Accept = application/json
|
NEW CHANGES:
Response: 200 OK
Code Block | ||
---|---|---|
| ||
[
{
"id": "DEVTEST",
"updated": 1685373577833,
"description": ""
},
{
"id": "DEV",
"updated": 1682695104471,
"description": ""
}
] |
No Format |
---|
GET http://<host>:<port>/queries/environments/{id}
Headers:
Accept = application/json
Authorization = {SAT token} |
NEW CHANGES:
Code Block | ||
---|---|---|
| ||
{
"status": 404,
"type": "EntityNotFoundException",
"message": "Environment does not exist"
} |
Response: 200 OK; 400 BAD REQUEST
Code Block | ||
---|---|---|
| ||
{
"id": "DEV",
"updated": 1682695104471,
"description": ""
} |
No Format |
---|
POST http://<host>:<port>/updates/environments
Headers:
Content-Type: application/json
Accept = application/json
|
Response: 200 OK(for successful updates), 201 CREATED (for successful creates), 400 BAD REQUEST, 500 INTERNAL SERVER ERROR
Restrictions:
Environment name should be valid by pattern: ^[a-zA-Z0-9]+$, name should be unique.
Code Block | ||
---|---|---|
| ||
{
"id": "AAA",
"description": "test description"
} |
Response: created environment.
Code Block | ||
---|---|---|
| ||
{
"id": "AAA",
"updated": 1689113695550,
"description": "test description"
} |
No Format |
---|
DELETE http://<host>:<port>/delete/environments/<environmentId>
Headers:
Accept = application/json
|
Response: 204 NO CONTENT; 400 BAD REQUEST: Environment is used: <usage place>
Restrictions:
Environment should be not used
Request: http://localhost:9091/delete/environments/DEV
No Format |
---|
GET http://<host>:<port>/queries/ipAddressGroups
Headers:
Accept = application/json
|
Response: 200 OK.
Code Block | ||
---|---|---|
| ||
[
{
"id": "TEST_IP_LIST",
"name": "TEST_IP_LIST",
"ipAddresses": [
"100.100.100.102"
]
}
] |
No Format |
---|
GET http://<host>:<port>/queries/ipAddressGroups/byName/{ipAddressGroupName}
Headers:
Accept = application/json
|
Response: 200 OK, 400 BAD REQUEST
IP Address group is returned with corresponding name wrapped by array. Empty array is returned in case if IP Address Group is now found.
Code Block | ||
---|---|---|
| ||
[
{
"id": "TEST_IP_LIST",
"name": "TEST_IP_LIST",
"ipAddresses": [
"100.100.100.102"
]
}
] |
No Format |
---|
GET http://<host>:<port>/queries/ipAddressGroups/byIp/{IP address}
Headers:
Accept = application/json
|
Response: 200 OK; 400 BAD REQUEST.
IP Address group is returned with corresponding IP address wrapped by array. Empty array is returned in case if IP Address Group is now found.
Code Block | ||
---|---|---|
| ||
[
{
"id": "test",
"name": "test",
"ipAddresses": [
"100.100.100.102"
]
}
] |
No Format |
---|
POST http://<host>:<port>/updates/ipAddressGroups
Headers:
Content-Type: application/json
Accept = application/json
|
Response: 200 OK(for successful updates), 201 CREATED (for successful creates), 400 BAD REQUEST, 500 INTERNAL SERVER ERROR and saved entity in case of successful save.
Restrictions:
Name should be not empty and unique
Code Block | ||
---|---|---|
| ||
{
"id": "TESTONE",
"name": "TESTONE",
"ipAddresses": [
"11.12.12.12"
]
} |
No Format |
---|
POST http://<host>:<port>/updates/ipAddressGroups/{IP address group name}/addData
Headers:
Content-Type = application/json
Accept = application/json
|
Restrictions:
ipAddressGroup with current id should be exist, see restrictions for create operation
Code Block | ||
---|---|---|
| ||
{
"list": [
"11.12.12.21"
]
} |
Response: 200 OK, 400 BAD REQUEST, 500 INTERNAL SERVER ERROR and updated IP Address Group:
Code Block | ||
---|---|---|
| ||
{
"id": "TESTONE",
"name": "TESTONE",
"ipAddresses": [
"11.12.12.12",
"11.12.12.21"
]
} |
No Format |
---|
POST http://<host>:<port>/updates/ipAddressGroups/{IP address group name}/removeData
Headers:
Content-Type = application/json
Accept = application/json
|
Restrictions:
List contains IPs, which should be present in current MAClist, MAC list should contain at least one IP address, and restrictions for create operation.
Code Block | ||
---|---|---|
| ||
{
"list": [
"1.1.1.1"
]
} |
Response: 204 NO CONTENT and ipAddressGroup object (see get request); 400 BAD REQUEST
NEW CHANGES:
Code Block |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "List contains IPs, which are not present in current Namespaced list: [11.12.12.21]"
} |
No Format |
---|
DELETE http://<host>:<port>/delete/ipAddressGroups/{IP address group name}
Accept = application/json
|
Response: 204 NO CONTENT, 400 BAD REQUEST
Restrictions:
IP address group should be not used
Request: http://localhost:9091/delete/ipAddressGroups/607b315b-c744-4c43-87fa-51b17aa92b09
NEW CHANGES:
No Format |
---|
{
"status": 409,
"type": "EntityConflictException",
"message": "IP_LIST_NAME is used in a Percentage Filter TEST_PERCENTAGE_BEAN"
} |
No Format |
---|
GET http://<host>:<port>/queries/rules/macs?applicationType={type}
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType is required.
With no version parameter or version < 2. Legacy query.
Response: 200 OK, 400 BAD REQUEST
Code Block | ||
---|---|---|
| ||
[
{
"firmwareConfig": {
"applicationType": "stb",
"description": "Test Description",
"firmwareDownloadProtocol": "tftp",
"firmwareFilename": "firmware-file-name",
"firmwareVersion": "TEST_FIRMWARE_VERSION_AAA",
"id": "74f531da-647e-4aaa-bfcf-9af4a29c6e18",
"supportedModelIds": [
"PLUME POD V1.0"
],
"updated": 1682695880624
},
"macListRef": "TestmacListRef",
"name": "test mac rule",
"targetedModelIds": [
"TEST POD V1.0"
]
}
] |
NEW CHANGES:
No Format |
---|
{
"status": 409,
"type": "ErrorType",
"message": "Error message"
} |
No Format |
---|
GET http://<host>:<port>/queries/rules/macs?version=2&applicationType={type}
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType is required.
Version parameter could any number >= 2.
Response: 200 OK, 400 BAD REQUEST.
Code Block | ||
---|---|---|
| ||
{
"id": "d40fdb2d-193a-4d81-95e8-b7b33ed3ac4b",
"name": "test mac rule",
"macListRef": "TestMacListRef",
"firmwareConfig": {
"id": "74f531da-647e-4aaa-bfcf-9af4a29c6e18",
"updated": 1682695880624,
"description": "description",
"supportedModelIds": [
"PLUME POD V1.0"
],
"firmwareFilename": "filename",
"firmwareVersion": "TEST_FIRMWARE_VERSION_AAA",
"applicationType": "stb",
"firmwareDownloadProtocol": "tftp"
},
"targetedModelIds": [
"PLUME POD V1.0"
],
"macList": [
"AA:AA:AA:AA:AA:AA",
"AA:AA:AA:AA:AA:AA",
"AA:AA:AA:AA:AA:AA"
]
} |
NEW CHANGES:
No Format |
---|
{
"status": 409,
"type": "ErrorType",
"message": "Error message"
} |
No Format |
---|
GET http://<host>:<port>/queries/rules/macs/<macRuleName>?applicationType={type}
Headers:
Accept = application/json
Content-Type = application/json
|
With no version parameter or version < 2. Legacy query.
Response: 200 OK.
Code Block | ||
---|---|---|
| ||
{
"name": "test mac rule",
"macListRef": "TestMacListRef",
"firmwareConfig": {
"id": "74f531da-647e-4aaa-bfcf-9af4a29c6e18",
"updated": 1682695880624,
"description": "description",
"supportedModelIds": [
"PLUME POD V1.0"
],
"firmwareFilename": "filename",
"firmwareVersion": "TEST_FIRMWARE_VERSION_AAA",
"applicationType": "stb",
"firmwareDownloadProtocol": "tftp"
},
"targetedModelIds": [
"PLUME POD V1.0"
]
} |
NEW CHANGES:
No Format |
---|
{
"status": 409,
"type": "ErrorType",
"message": "Error message"
} |
No Format |
---|
GET http://<host>:<port>/queries/rules/macs/<macRuleName>?version=2&applicationType={type}
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType is required.
Version parameter could any number >= 2.
Response: 200 OK
Code Block | ||
---|---|---|
| ||
{
"firmwareConfig": {
"applicationType": "stb",
"description": "Description",
"firmwareDownloadProtocol": "tftp",
"firmwareFilename": "firmware-file-name",
"firmwareVersion": "TEST_FIRMWARE_VERSION_AAA",
"id": "74f531da-647e-4aaa-bfcf-9af4a29c6e18",
"supportedModelIds": [
"PLUME POD V1.0"
],
"updated": 1682695880624
},
"id": "d40fdb2d-193a-4d81-95e8-b7b33ed3ac4b",
"macList": [
"AA:AA:AA:AA:AA:AA",
"AA:AA:AA:AA:AA:AA",
"AA:AA:AA:AA:AA:AA",
],
"macListRef": "TestMacListRef",
"name": "test mac rule",
"targetedModelIds": [
"PLUME POD V1.0"
]
} |
NEW CHANGES:
No Format |
---|
{
"status": 409,
"type": "ErrorType",
"message": "Error message"
} |
No Format |
---|
GET http://<host>:<port>/queries/rules/macs/address/{macAddress}?applicationType={type}
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType is required
With no version parameter or version < 2. Legacy query.
Response: 200 OK, 400 BAD REQUEST
Code Block | ||
---|---|---|
| ||
[
{
"name": "test mac rule",
"macListRef": "TestMaclistRef",
"firmwareConfig": {
"id": "74f531da-647e-4aaa-bfcf-9af4a29c6e18",
"updated": 1682695880624,
"description": "test description",
"supportedModelIds": [
"PLUME POD V1.0"
],
"firmwareFilename": "firmware-file-name",
"firmwareVersion": "TEST_FIRMWARE_VERSION_AAA",
"applicationType": "stb",
"firmwareDownloadProtocol": "tftp"
},
"targetedModelIds": [
"PLUME POD V1.0"
]
}
] |
NEW CHANGES:
No Format |
---|
{
"status": 409,
"type": "ErrorType",
"message": "Error message"
} |
No Format |
---|
GET http://<host>:<port>/queries/rules/macs/address/<macAddress>?version=2&applicationType={type}
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType is required.
Version parameter could any number >= 2.
Response: 200 OK, 400 BAD REQUEST
Code Block | ||
---|---|---|
| ||
[
{
"id": "d40fdb2d-193a-4d81-95e8-b7b33ed3ac4b",
"name": "test mac rule",
"macListRef": "TestMacListRef",
"firmwareConfig": {
"id": "74f531da-647e-4aaa-bfcf-9af4a29c6e18",
"updated": 1682695880624,
"description": "Description",
"supportedModelIds": [
"PLUME POD V1.0"
],
"firmwareFilename": "firmware-file-name",
"firmwareVersion": "TEST_FIRMWARE_VERSION_AAA,
"applicationType": "stb",
"firmwareDownloadProtocol": "tftp"
},
"targetedModelIds": [
"PLUME POD V1.0"
],
"macList": [
"AA:AA:AA:AA:AA:AA"
]
}
] |
NEW CHANGES:
No Format |
---|
{
"status": 409,
"type": "ErrorType",
"message": "Error message"
} |
For creates, use POST method and don't specify id in the input json. Generated id is returned in the response.
For updates, use POST method and id is a mandatory field in the input json.
No Format |
---|
POST http://<host>:<port>/updates/rules/macs?applicationType={type}
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType is required.
Response: 200 OK(for successful updates), 201 CREATED (for successful creates), 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
Code Block | ||
---|---|---|
| ||
{
"name": "test mac rule 2",
"macListRef": "maclist",
"firmwareConfig": {
"id": "74f531da-647e-4aaa-bfcf-9af4a29c6e18",
"updated": 1682695880624,
"description": "description",
"supportedModelIds": [
"PLUME POD V1.0"
],
"firmwareFilename": "firmware-file-name",
"firmwareVersion": "TEST_FIRMWARE_VERSION_AAA",
"applicationType": "stb",
"firmwareDownloadProtocol": "tftp"
},
"targetedModelIds": [
"PLUME POD V1.0"
],
"macList": [
"AA:AA:AA:AA:AA:AA"
]
} |
NEW CHANGES:
In case of missing Firmware Config:
Current error message: Firmware configuration is not specified.
Previous error message: "Firmware configuration is not specified."
No Format |
---|
{
"status": 409,
"type": "ErrorType",
"message": "Error message"
} |
No Format |
---|
DELETE http://<host>:<port>/delete/rules/macs/{macRuleName}?applicationType={type}
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType is required.
Response: 204 NO CONTENT, 400 BAD REQUEST.
NEW CHANGES:
No Format |
---|
{
"status": 409,
"type": "ErrorType",
"message": "Error message"
} |
No Format |
---|
GET http://<host>:<port>/queries/models
Headers:
Accept = application/json
|
Response: 200 OK
Code Block | ||
---|---|---|
| ||
[
{
"id": "12",
"updated": 1682695121503,
"description": "Test Model"
},
{
"id": "123",
"updated": 1682695121513,
"description": "Test Model"
}
] |
NEW CHANGES:
No Format |
---|
GET http://<host>:<port>/queries/models/{model id}
Headers:
Accept = application/json
|
Response: 200 OK; 204 NO CONTENT
Code Block | ||
---|---|---|
| ||
{
"id": "TESTMODEL",
"updated": 1682695122378,
"description": "Test model"
} |
NEW CHANGES:
Code Block | ||
---|---|---|
| ||
{
"status": 404,
"type": "EntityNotFoundException",
"message": "TEST_MODEL_AAA not found"
} |
No Format |
---|
POST http://<host>:<port>/updates/models
Headers:
Content-Type = application/json
Accept = application/json
|
Response: 201 CREATED; 400 BAD REQUEST; 500 INTERNAL SERVER ERROR
Restrictions:
Model name should be unique and valid by pattern: ^[a-zA-Z0-9]+$
Code Block | ||
---|---|---|
| ||
{
"id": "TESTMODEL",
"description": "Test model"
} |
Json response:
Code Block |
---|
{
"id": "TESTMODEL",
"updated": 1682695122378,
"description": "Test model"
} |
NEW CHANGES:
Code Block |
---|
{
"status": 409,
"type": "EntityConflictException",
"message": "\"Model with current name already exists\""
} |
No Format |
---|
PUT http://<host>:<port>/updates/models
Headers:
Content-Type = application/json
Accept = application/json
|
Request:
Code Block | ||
---|---|---|
| ||
{
"id": "TESTMODEL",
"description": "Updated description"
} |
Response: 200 OK, 400 BAD REQUEST, 404 NOT FOUND, 500 INTERNAL SERVER ERROR
Code Block |
---|
{
"id": "TESTMODEL",
"updated": 1689197427175,
"description": "Updated description"
} |
Code Block |
---|
{
"status": 404,
"type": "EntityNotFoundException",
"message": "TESTMODEL 1 model does not exist"
} |
No Format |
---|
DELETE http://<host>:<port>/delete/models/{model id}
Headers:
Accept = application/json
Content-Type = application/json
|
Response: 204 NO CONTENT, 404 NOT FOUND
Restrictions:
Model should be not used in another places.
NEW CHANGES:
Code Block |
---|
{
"status": 404,
"type": "EntityNotFoundException",
"message": "Entity with id: TESTMODEL does not exist"
} |
No Format |
---|
GET http://<host>:<port>/queries/nsLists
Headers:
Accept = application/json
|
Response: 200 OK
Code Block | ||
---|---|---|
| ||
[
{
"id": "Test",
"updated": 1682695493885,
"data": [
"AA:AA:AA:AA:AA:AA",
"AA:AA:AA:AA:AA:AA"
],
"typeName": "MAC_LIST"
}
] |
NEW CHANGES:
No Format |
---|
GET http://<host>:<port>/queries/nsLists/byId/{mac list id}
Headers:
Accept = application/json
|
Response: 200 OK. In case of MAC list not found 200 is returned as well.
Code Block | ||
---|---|---|
| ||
{
"id": "Test",
"updated": 1682695493885,
"data": [
"AA:AA:AA:AA:AA:AA",
"AA:AA:AA:AA:AA:AA"
],
"typeName": "MAC_LIST"
} |
NEW CHANGES:
No Format |
---|
GET http://<host>:<port>/queries/nsLists/byMacPart/{MAC address part}
Headers:
Accept = application/json
|
Response: 200 OK
Code Block | ||
---|---|---|
| ||
[
{
"id": "TEST_MAC_LIST",
"updated": 1682695495338,
"data": [
"AA:AA:AA:AA:AA:AA"
],
"typeName": "MAC_LIST"
}
] |
NEW CHANGES:
No Format |
---|
POST http://<host>:<port>/updates/nsLists
Headers:
Content-Type = application/json
Accept = application/json
|
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
Code Block | ||
---|---|---|
| ||
{
"id": "TEST_MAC_LIST",
"data": [
"AA:AA:AA:AA:AA:AA"
]
} |
Response: 201 CREATED; 400 BAD REQUEST; 500 INTERNAL SERVER ERROR
Code Block | ||
---|---|---|
| ||
{
"id": "TEST_MAC_LIST",
"updated": 1689274607201,
"data": [
"AA:AA:AA:AA:AA:AA"
],
"typeName": "MAC_LIST"
} |
NEW CHANGES:
Code Block | ||
---|---|---|
| ||
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "Name is invalid"
} |
No Format |
---|
POST http://<host>:<port>/updates/nsLists/{MAC list id}/addData
POST http://<host>:<port>/updates/nslist/{MAC list id}/addData - legacy endpoint
Headers:
Content-Type = application/json
Accept = application/json
|
Response: 200 OK, 400 BAD REQUEST, 500 INTERNAL SERVER ERROR
Restrictions:
NS list with current id should be exist, see restrictions for create operation
Code Block | ||
---|---|---|
| ||
{
"list": [
"AB:AB:AB:AB:AB:AB"
]
} |
Response body:
Code Block | ||
---|---|---|
| ||
{
"id": "TEST_MAC_LIST",
"updated": 1689274877522,
"data": [
"AA:AA:AA:AA:AA:AA",
"AB:AB:AB:AB:AB:AB"
],
"typeName": "MAC_LIST"
} |
NEW CHANGES:
Code Block | ||
---|---|---|
| ||
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "List contains invalid address(es): [AB:AB:AB:AB:AB:]"
} |
No Format |
---|
POST http://<host>:<port>/updates/nsLists/{MAC list id}/removeData
POST http://<host>:<port>/updates/nslist/{MAC list id}/removeData - legacy endpoint
Headers:
Content-Type = application/json
Accept = application/json
|
Response: 204 NO CONTENT and NS list object (see get request); 400 BAD REQUEST
Restrictions:
List contains MACs, which should be present in current MAC list, MAC list should contain at least one MAC address, and restrictions for create operation
Code Block | ||
---|---|---|
| ||
{
"list": [
"AB:AB:AB:AB:AB:AB"
]
} |
Response body:
Code Block | ||
---|---|---|
| ||
{
"id": "TEST_MAC_LIST",
"updated": 1689274877522,
"data": [
"AA:AA:AA:AA:AA:AA",
"AB:AB:AB:AB:AB:AB"
],
"typeName": "MAC_LIST"
} |
NEW CHANGES:
Code Block | ||
---|---|---|
| ||
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "List with current ID doesn't exist"
} |
No Format |
---|
DELETE http://<host>:<port>/delete/nsLists/{MAC list id}
Headers:
Accept = application/json
Content-Type = application/json
|
Response: 200 OK and message: MACList doesn't exist OR MACList successfully deleted;
Restrictions:
NS list should be not used in another places
NEW CHANGES:
Code Block | ||
---|---|---|
| ||
{
"status": 409,
"type": "EntityConflictException",
"message": "List is used by FirmwareRule test mac rule"
} |
No Format |
---|
GET http://<host>:<port>/queries/filters/ri?applicationType={type}
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType is required.
Response: 200 OK, 400 BAD REQUEST
Code Block | ||
---|---|---|
| ||
[
{
"ipAddressGroups": [
{
"id": "TEST_IP_LIST",
"name": "TEST_IP_LIST",
"ipAddresses": [
"10.10.10.10"
]
}
],
"environments": [],
"models": [],
"macAddresses": "BB:BB:BB:BB:BB:BB",
"id": "e3dc3f95-55c6-4b55-8180-ab7fca244efc",
"name": "Test RI Filter"
}
] |
NEW CHANGES:
No Format |
---|
GET http://<host>:<port>/queries/filters/ri/{ruleName}?applicationType={type}
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType is not required, default value is stb
Response: 200 OK, 400 BAD REQUEST
Request: http://localhost:9091/queries/filters/ri/testName.json (deprecated) OR http://localhost:9091/queries/filters/ri/testName
Code Block | ||
---|---|---|
| ||
{
"ipAddressGroups": [
{
"id": "All_Contec_Warehouse",
"name": "All_Contec_Warehouse",
"ipAddresses": [
"111.111.111.111/28",
"111.111.111.111/27",
"111.111.111.111/28",
"1001:1234:0001::/48",
]
}
],
"environments": [],
"models": [],
"macAddresses": "BB:BB:BB:BB:BB:BB",
"id": "e3dc3f95-55c6-4b55-8180-ab7fca244efc",
"name": "Test RI Filter"
} |
NEW CHANGES:
Code Block | ||
---|---|---|
| ||
{
"status": 409,
"type": "EntityConflictException",
"message": "List is used by FirmwareRule test mac rule"
} |
For creates, use POST method and don't specify id in the input json. Generated id is returned in the response.
For updates, use PUT method and id is a mandatory field in the input json.
No Format |
---|
POST http://<host>:<port>/updates/filters/ri?applicationType={type}
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType is required.
Response: 200 OK(for successful updates), 201 CREATED (for successful creates), 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.
Code Block | ||
---|---|---|
| ||
{
"ipAddressGroups": [
{
"id": "TEST_IP_LIST",
"name": "TEST_IP_LIST",
"ipAddresses": [
"10.10.10.10"
]
}
],
"environments": [],
"models": [],
"macAddresses": "BB:BB:BB:BB:BB:BB",
"id": "e3dc3f95-55c6-4b55-8180-ab7fca244efc",
"name": "Test RI Filter"
} |
NEW CHANGES:
Code Block | ||
---|---|---|
| ||
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "IP address group is not matched by existed IP address group"
} |
No Format |
---|
DELETE http://<host>:<port>/delete/filters/ri/{RI filter name}?applicationType={type}
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType is required
Response: 204 NO CONTENT, 400 BAD REQUEST
NEW CHANGES:
Code Block | ||
---|---|---|
| ||
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
} |
No Format |
---|
GET http://<host>:<port>/firmwareruletemplate/filtered?name=MAC_RULE&key=someKey
Headers:
Accept = application/json,
Content-Type = application/json |
Request params:
Parameters could be combined:
'?name=someName&value=testValue'
Response: 200
No Format |
---|
[
{
"id": "MAC_RULE",
"updated": 1682696197569,
"rule": {
"condition": {
"freeArg": {
"type": "STRING",
"name": "eStbMac"
},
"operation": "IN_LIST",
"fixedArg": {
"bean": {
"value": {
"java.lang.String": ""
}
}
}
},
"negated": false
},
"applicableAction": {
"type": ".ApplicableAction",
"actionType": "RULE_TEMPLATE",
"active": false,
"useAccountPercentage": false,
"firmwareCheckRequired": false,
"rebootImmediately": false
},
"priority": 5,
"editable": true
}
] |
NEW CHANGES:
No Format |
---|
POST http://<host>:<port>/firmwareruletemplate/importAll
Headers:
Accept = application/json
Content-Type = application/json
|
Request body is list of firmware rule templates:
No Format |
---|
[
{
"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:
No Format |
---|
{
"NOT_IMPORTED": [],
"IMPORTED": []
} |
Response codes: 200, 400, 404, 409
No Format |
---|
GET http://<host>:<port>/firmwarerule?applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
Response body
No Format |
---|
[
{
"id": "d40fdb2d-193a-4d81-95e8-b7b33ed3ac4b",
"updated": 1689275903420,
"name": "test mac rule",
"applicableAction": {
"type": ".RuleAction",
"actionType": "RULE",
"configId": "74f531da-647e-4aaa-bfcf-9af4a29c6e18",
"configEntries": [],
"active": true,
"useAccountPercentage": false,
"firmwareCheckRequired": false,
"rebootImmediately": false
},
"rule": {
"condition": {
"freeArg": {
"type": "STRING",
"name": "eStbMac"
},
"operation": "IN_LIST",
"fixedArg": {
"bean": {
"value": {
"java.lang.String": "Ad_Proxy_NoRFC"
}
}
}
},
"negated": false
},
"type": "MAC_RULE",
"active": true,
"applicationType": "stb"
}
] |
NEW CHANGES:
Code Block | ||
---|---|---|
| ||
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
} |
No Format |
---|
GET http://<host>:<port>/firmwarerule/filtered?tepmlateId=TEST_ID&key=firmwareVersion?applicationType=stb
Headers:
Accept = application/json,
Content-Type = application/json |
Request params:
applicationType param is required.
Parameters can be combined:
'?applicationType=stb&value=someValue'
NEW CHANGES:
Code Block | ||
---|---|---|
| ||
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
} |
No Format |
---|
POST http://<host>:<port>/firmwarerule/importAll?applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
Request body is list of firmware rules:
No Format |
---|
[
{
"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:
No Format |
---|
{
"NOT_IMPORTED": [],
"IMPORTED": ["testName"]
} |
Response codes: 200, 400, 404, 409
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
} |
No Format |
---|
GET http://<host>:<port>/feature?applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
Response body
No Format |
---|
[
{
"id": "27a9d55e-0f0c-4809-b171-8357613f0efa",
"name": "name",
"featureName": "featureName",
"effectiveImmediate": false,
"enable": false,
"whitelisted": false,
"configData": {
"key1": "value1"
},
"whitelistProperty": {},
"applicationType": "stb"
}
] |
No Format |
---|
GET http://<host>:<port>/feature/filtered?applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
Request params:
'applicationType' param is required.
Parameters can be combined:
'?applicationType=stb&FIXED_ARG=someValue'
Response: 200 OK, 400 BAD REQUEST, 500 INTERNAL SERVER ERROR
No Format |
---|
[
{
"id": "27a9d55e-0f0c-4809-b171-8357613f0efa",
"name": "name",
"featureName": "featureName",
"effectiveImmediate": false,
"enable": false,
"whitelisted": false,
"configData": {
"key1": "value1"
},
"whitelistProperty": {},
"applicationType": "stb"
}
] |
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
} |
No Format |
---|
POST http://<host>:<port>/feature/importAll?applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
Request body is list of features:
No Format |
---|
[
{
"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:
No Format |
---|
{
"NOT_IMPORTED": [],
"IMPORTED": ["featureID"]
} |
Response codes: 200, 400, 409.
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
} |
No Format |
---|
POST http://<host>:<port>/feature?applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType parameter is mandatory.
Request body is feature json object
No Format |
---|
{
"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.
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
} |
No Format |
---|
PUT http://<host>:<port>/feature?applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType parameter is required.
Request body is feature json object
No Format |
---|
{
"id": "27a9d55e-0f0c-4809-b171-8357613f0efa",
"name": "name",
"featureInstance": "featureInstance",
"effectiveImmediate": false,
"enable": false,
"whitelisted": false,
"configData": {
"key1": "value1"
},
"whitelistProperty": {},
"applicationType": "stb"
} |
Response codes: 200, 400, 404, 409.
Response body: updated feature.
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
}
OR
"Entity id is empty" |
No Format |
---|
DELETE http://<host>:<port>/feature/{id}?applicationType=stb
Accept = application/json
Content-Type = application/json
|
applicationType parameter is required.
Response codes: 204, 404, 409.
NEW CHANGES:
No Format |
---|
{
"status": 409,
"type": "EntityConflictException",
"message": "This Feature linked to FeatureRule with name: taaa"
} |
No Format |
---|
GET http://<host>:<port>/featurerule?applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType is a required parameter.
Response body
No Format |
---|
[
{
"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.
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
} |
No Format |
---|
GET http://<host>:<port>/featurerule/filtered??applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType is a required parameter.
Request params:
Parameters can be combined:
'?APPLICATION_TYPE=stb&FIXED_ARG=someValue'
Response: list of filtered entities.
No Format |
---|
[
{
"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"
}
] |
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
} |
If feature rule with provided id does not exist it is imported otherwise updated.
No Format |
---|
POST http://<host>:<port>/featurerule/importAll?applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType parameter is required.
Request body is list of feature rules:
No Format |
---|
[
{
"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:
No Format |
---|
{
"NOT_IMPORTED": [],
"IMPORTED": ["featureRuleId"]
} |
Response codes: 200, 400, 404, 409
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
} |
No Format |
---|
POST http://<host>:<port>/featurerule?applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType parameter is required.
Request body is feature rule json object
No Format |
---|
{
"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.
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
} |
No Format |
---|
PUT http://<host>:<port>/featurerule?applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType parameter is required.
Request body is feature rule json object
No Format |
---|
{
"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, 400, 404, 409.
Response body: updated feature rule.
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
} |
No Format |
---|
DELETE http://<host>:<port>/featurerule/{id}?applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType parameter is required.
Response codes: 204, 404, 409.
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
}
OR
"Entity with id: 5e20b32-f27d-42aa-a516-e90ace0a4959 does not exist" |
No Format |
---|
GET http://<host>:<port>/amv?applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType parameter is required.
Response body
No Format |
---|
[
{
"id": "bb71d9be-c6ca-44ee-95f9-4980f1d395d8",
"applicationType": "stb",
"description": "TEST ACTIVATION VERSION",
"model": "MODEL1",
"partnerId": "PARTNER-ID",
"regularExpressions": [
"testregex"
],
"firmwareVersions": [
"TEST_FIRMWARE_VERSION_AAA",
"TEST_FIRMWARE_VERSION_AAA"
]
}
] |
Response codes: 200.
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
} |
No Format |
---|
GET http://<host>:<port>/amv/filtered??applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType parameter is required.
Request params:
'applicationType' param is required.
Parameters can be combined:
'?applicationType=stb&MODEL=modelId'
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
} |
If activation minimum version with provided id does not exist it is imported otherwise updated.
No Format |
---|
POST http://<host>:<port>/amv/importAll?applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType parameter is required.
Request body is list of activation minimum version:
No Format |
---|
[
{
"id": "42670af7-6ea2-485f-9aee-1fa5895d655b",
"applicationType": "stb",
"description": "Activation Version",
"regularExpressions": [],
"model": "MODEL1",
"firmwareVersions": [
"FIRMWARE_VERSION"
]
}
] |
Return list of imported and not imported activation minimum version IDs:
Response body:
No Format |
---|
{
"NOT_IMPORTED": [],
"IMPORTED": ["42670af7-6ea2-485f-9aee-1fa5895d655b"]
} |
Response codes: 200, 400, 404, 409
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
} |
No Format |
---|
POST http://<host>:<port>/amv?applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType parameter is required.
Request body is activation minimum version json object
No Format |
---|
{
"description": "TEST ACTIVATION VERSION 1 1",
"model": "MODEL1",
"partnerId": "PARTNER-ID 1",
"regularExpressions": [
"testregex"
],
"firmwareVersions": [
"TEST_FIRMWARE_VERSION_AAA"
]
} |
Response codes: 201, 400, 404, 409.
Response body: created activation minimum version.
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
} |
No Format |
---|
PUT http://<host>:<port>/amv?applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType parameter is required.
Request body is activation minimum version json object
No Format |
---|
{
"id": "42670af7-6ea2-485f-9aee-1fa5895d655b",
"applicationType": "stb",
"description": "Activation Version",
"regularExpressions": [],
"model": "MODEL1",
"firmwareVersions": [
"FIRMWARE_VERSION"
]
} |
Response codes: 200, 400, 404, 409.
Response body: updated activation minimum version.
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
} |
No Format |
---|
DELETE http://<host>:<port>/amv/{id}?applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType parameter is required.
Response codes: 204, 404, 409.
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
} |
No Format |
---|
GET http://<host>:<port>/telemetry/profile?applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType parameter is required.
No Format |
---|
[{
"id": "1a5a55f9-d355-4959-9a9c-ed5e192a61fe",
"telemetryProfile": [
{
"id": "c900bda0-d48a-4ede-9a0f-6459c5ed192b",
"header": "Test1",
"content": "Content1",
"type": "Type1",
"pollingFrequency": "1"
}],
"schedule": "1 1 1 1 1",
"expires": 0,
"applicationType": "rdkcloud",
"telemetryProfile:name": "rdkcloudCompTest",
"uploadRepository:URL": "rcompTest.com",
"uploadRepository:uploadProtocol": "TFTP"
}] |
Response Codes: 200
Response Body: list of Telemetry Profiles
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
} |
Retrieve Telemetry Profile by id:
No Format |
---|
GET http://<host>:<port>/telemetry/profile/{id}?applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
Response Body: Telemetry Profile
No Format |
---|
{
"id": "1a5a55f9-d355-4959-9a9c-ed5e192a61fe",
"telemetryProfile": [
{
"id": "c900bda0-d48a-4ede-9a0f-6459c5ed192b",
"header": "Test1",
"content": "Content1",
"type": "Type1",
"pollingFrequency": "1",
"component": ""
}],
"schedule": "1 1 1 1 1",
"expires": 0,
"applicationType": "rdkcloud",
"telemetryProfile:name": "rdkcloudCompTest",
"uploadRepository:URL": "rcompTest.com",
"uploadRepository:uploadProtocol": "TFTP"
} |
Response Codes: 200, 404
NEW CHANGES:
No Format |
---|
{
"status": 404,
"type": "EntityNotFoundException",
"message": "Entity with id aa does not exist"
} |
No Format |
---|
POST http://<host>:<port>/telemetry/profile?applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType parameter is required.
Request Body: Telemetry Profile with of without id
No Format |
---|
{
"telemetryProfile": [
{
"header": "Test1",
"content": "Content1",
"type": "Type1",
"pollingFrequency": "1",
"component": ""
}],
"schedule": "1 1 1 1 1",
"expires": 0,
"applicationType": "rdkcloud",
"telemetryProfile:name": "rdkcloudCompTest",
"uploadRepository:URL": "rcompTest.com",
"uploadRepository:uploadProtocol": "TFTP"
} |
Response Codes: 201, 400, 409
Response Body: created telemetry profile
NEW CHANGES:
No Format |
---|
{
"status": 409,
"type": "EntityConflictException",
"message": "PermanentProfile with such name exists: rdkcloudCompTest"
} |
No Format |
---|
PUT http://<host>:<port>/telemetry/profile?applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
Request Body: Telemetry Profile
No Format |
---|
{
"id": "1a5a55f9-d355-4959-9a9c-ed5e192a61fe",
"telemetryProfile": [
{
"id": "c900bda0-d48a-4ede-9a0f-6459c5ed192b",
"header": "Test1",
"content": "Content1",
"type": "Type1",
"pollingFrequency": "1",
"component": ""
}],
"schedule": "1 1 1 1 1",
"expires": 0,
"applicationType": "rdkcloud",
"telemetryProfile:name": "rdkcloudCompTest",
"uploadRepository:URL": "rcompTest.com",
"uploadRepository:uploadProtocol": "TFTP"
} |
Response Codes: 200, 400, 404, 409
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "Entity id is empty"
} |
No Format |
---|
DELETE http://<host>:<port>/telemetry/profile/{id}?applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType parameter is required.
NEW CHANGES:
No Format |
---|
{
"status": 404,
"type": "EntityNotFoundException",
"message": "Entity with id: 87c3a655-2511-46bd-81b8-206b7d33cbff does not exist"
} |
Response Codes: 204, 404, 409
No Format |
---|
PUT http://<host>:<port>/telemetry/profile/entry/add/{id}
Headers:
Accept = application/json
Content-Type = application/json
|
Request Body: Telemetry Profile entry to add
No Format |
---|
[{
"header": "Test2",
"content": "Content2",
"type": "Type2",
"pollingFrequency": "2",
"component": "Test Component"
}] |
Response Code: 200, 404.
NEW CHANGES:
No Format |
---|
{
"status": 409,
"type": "EntityConflictException",
"message": "Telemetry entry already exists"
} |
No Format |
---|
PUT http://<host>:<port>/telemetry/profile/entry/remove/{id}?applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType parameter is required.
Request Body: Telemetry Profile entry to remove (id field is required)
No Format |
---|
[{
"header": "Test2",
"content": "Content2",
"type": "Type2",
"pollingFrequency": "2",
"component": "Test Component"
}] |
Response Code: 200, 404.
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
} |
No Format |
---|
POST http://<host>:<port>/telemetry/profile/change?applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType parameter is required.
Request Body: Telemetry Profile with of without id
No Format |
---|
{
"telemetryProfile": [
{
"header": "Test1",
"content": "Content1",
"type": "Type1",
"pollingFrequency": "1",
"component": ""
}],
"schedule": "1 1 1 1 1",
"expires": 0,
"applicationType": "rdkcloud",
"telemetryProfile:name": "rdkcloudCompTest",
"uploadRepository:URL": "rcompTest.com",
"uploadRepository:uploadProtocol": "TFTP"
} |
Response Codes: 201, 400, 409
Response Body: change entity
No Format |
---|
{
"id": "f4d002fc-2e27-40b7-a4ff-f951cc02bd89",
"updated": 1650377421993,
"entityId": "4b4232c6-6db5-42cf-8e34-faa2f08e9f1a",
"entityType": "TELEMETRY_PROFILE",
"newEntity": {
"@type": "PermanentTelemetryProfile",
"id": "4b4232c6-6db5-42cf-8e34-faa2f08e9f1a",
"telemetryProfile": [
{
"id": "96eb4a5b-8b8c-426d-96db-22fbbb8438a7",
"header": "new entry",
"content": "test CHANGE 1",
"type": "aa",
"pollingFrequency": "3",
"component": "tete"
}
],
"schedule": "1 1 1 1 54",
"expires": 0,
"applicationType": "stb",
"telemetryProfile:name": "API created PENDING CHANGES XHOME",
"uploadRepository:URL": "https://test-change-4.com",
"uploadRepository:uploadProtocol": "HTTPS"
},
"operation": "CREATE",
"author": "UNKNOWN_USER"
} |
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ExceptionType",
"message": "Exception message"
} |
No Format |
---|
PUT http://<host>:<port>/telemetry/profile/change?applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType parameter is required
Request Body: Telemetry Profile
No Format |
---|
{
"id": "1a5a55f9-d355-4959-9a9c-ed5e192a61fe",
"telemetryProfile": [
{
"id": "c900bda0-d48a-4ede-9a0f-6459c5ed192b",
"header": "Test1",
"content": "Content1",
"type": "Type1",
"pollingFrequency": "1",
"component": ""
}],
"schedule": "1 1 1 1 1",
"expires": 0,
"applicationType": "rdkcloud",
"telemetryProfile:name": "rdkcloudCompTest",
"uploadRepository:URL": "rcompTest.com",
"uploadRepository:uploadProtocol": "TFTP"
} |
Response Codes: 200, 400, 404, 409
Response Body: null value – needs to be fixed.
NEW CHANGES:
Error has following json structure:
No Format |
---|
{
"status": 400,
"type": "ExceptionType",
"message": "Exception message"
} |
No Format |
---|
DELETE http://<host>:<port>/telemetry/profile/change/{id}?applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType parameter is required.
Response Codes: 204, 404, 409
Response Body: change entity
No Format |
---|
{
"id": "43784bc2-be36-4ff3-8662-c51e91d67be6",
"updated": 1650382497651,
"entityId": "101391a4-5582-4d4d-bd73-e0f68839eadd",
"entityType": "TELEMETRY_PROFILE",
"oldEntity": {
"@type": "PermanentTelemetryProfile",
"id": "101391a4-5582-4d4d-bd73-e0f68839eadd",
"telemetryProfile": [
{
"id": "cca479b8-66bf-45af-ba07-e7b991f61e35",
"header": "test-changed",
"content": "test-changed",
"type": "test",
"pollingFrequency": "32",
"component": "32"
}
],
"schedule": "1 1 1 1 1",
"expires": 0,
"applicationType": "xhome",
"telemetryProfile:name": "xhome profile",
"uploadRepository:URL": "http://test.com",
"uploadRepository:uploadProtocol": "HTTP"
},
"operation": "DELETE",
"author": "UNKNOWN_USER"
} |
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
} |
No Format |
---|
PUT http://<host>:<port>/telemetry/profile/change/entry/add/{id}?applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType parameter is required.
Request Body: Telemetry Profile entry to add
No Format |
---|
[{
"header": "Test2",
"content": "Content2",
"type": "Type2",
"pollingFrequency": "2",
"component": "Test Component"
}] |
Response Code: 200, 404
Response Body: change entity
No Format |
---|
{
"id": "f1fced8a-6c97-42a3-a8d3-756cbdd32daf",
"updated": 1650382757134,
"entityId": "101391a4-5582-4d4d-bd73-e0f68839eadd",
"entityType": "TELEMETRY_PROFILE",
"newEntity": {
"@type": "PermanentTelemetryProfile",
"id": "101391a4-5582-4d4d-bd73-e0f68839eadd",
"telemetryProfile": [
{
"id": "cca479b8-66bf-45af-ba07-e7b991f61e35",
"header": "test-changed",
"content": "test-changed",
"type": "test",
"pollingFrequency": "32",
"component": "32"
},
{
"id": "963bbcff-85d7-46ca-a96e-c5aed0842802",
"header": "Test2",
"content": "Content2",
"type": "Type2",
"pollingFrequency": "2",
"component": "Test Component"
}
],
"schedule": "1 1 1 1 1",
"expires": 0,
"applicationType": "xhome",
"telemetryProfile:name": "xhome profile",
"uploadRepository:URL": "http://test.com",
"uploadRepository:uploadProtocol": "HTTP"
},
"oldEntity": {
"@type": "PermanentTelemetryProfile",
"id": "101391a4-5582-4d4d-bd73-e0f68839eadd",
"telemetryProfile": [
{
"id": "cca479b8-66bf-45af-ba07-e7b991f61e35",
"header": "test-changed",
"content": "test-changed",
"type": "test",
"pollingFrequency": "32",
"component": "32"
}
],
"schedule": "1 1 1 1 1",
"expires": 0,
"applicationType": "xhome",
"telemetryProfile:name": "xhome profile",
"uploadRepository:URL": "http://test.com",
"uploadRepository:uploadProtocol": "HTTP"
},
"operation": "UPDATE",
"author": "UNKNOWN_USER"
} |
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ErrorType",
"message": "Error message"
} |
No Format |
---|
PUT http://<host>:<port>/telemetry/profile/change/entry/remove/{id}?applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType parameter is required.
Request Body: Telemetry Profile entry to remove
No Format |
---|
[{
"header": "Test2",
"content": "Content2",
"type": "Type2",
"pollingFrequency": "2",
"component": "Test Component"
}] |
Response Code: 200, 404
Response Body: update change
No Format |
---|
{
"id": "4705486f-2dcc-4ae9-a920-a45b33755993",
"updated": 1650383061321,
"entityId": "55dfe0ba-44a3-4953-b6e8-3d165e0cb22d",
"entityType": "TELEMETRY_PROFILE",
"newEntity": {
"@type": "PermanentTelemetryProfile",
"id": "55dfe0ba-44a3-4953-b6e8-3d165e0cb22d",
"telemetryProfile": [
{
"id": "963bbcff-85d7-46ca-a96e-c5aed0842802",
"header": "API added header CHANGE",
"content": "API added content CHANGE 2",
"type": "API added type",
"pollingFrequency": "10",
"component": "API added component"
}
],
"schedule": "1 1 1 1 54",
"expires": 0,
"applicationType": "stb",
"telemetryProfile:name": "API created profile",
"uploadRepository:URL": "https://test-change-4.com",
"uploadRepository:uploadProtocol": "HTTPS"
},
"oldEntity": {
"@type": "PermanentTelemetryProfile",
"id": "55dfe0ba-44a3-4953-b6e8-3d165e0cb22d",
"telemetryProfile": [
{
"id": "3e39888e-7398-456f-bec4-904b1eab2ff3",
"header": "testaa test",
"content": "test CHANGE 1",
"type": "aa",
"pollingFrequency": "3",
"component": "tete"
},
{
"id": "0d02b4cd-cdf6-42f0-8ae6-d7fb7286edb0",
"header": "API added header CHANGED",
"content": "API content CHANGE 3",
"type": "API added type",
"pollingFrequency": "10",
"component": "t"
}
],
"schedule": "1 1 1 1 54",
"expires": 0,
"applicationType": "stb",
"telemetryProfile:name": "API created profile",
"uploadRepository:URL": "https://test-change-4.com",
"uploadRepository:uploadProtocol": "HTTPS"
},
"operation": "UPDATE",
"author": "UNKNOWN_USER"
} |
NEW CHANGES:
No Format |
---|
{
"status": 404,
"type": "EntityNotFoundException",
"message": "Telemetry entry does not exist"
} |
No Format |
---|
GET http://<host>:<port>/telemetry/v2/profile?applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType parameter is required.
No Format |
---|
[
{
"@type": "TelemetryTwoProfile",
"id": "d46afcad-42d4-4a83-8c4a-540268921998",
"updated": 1682348672800,
"name": "WhixTelemetry",
"jsonconfig": "{\n \"Protocol\": \"HTTP\",\n \"EncodingType\": \"JSON\",\n \"GenerateNow\": false,\n \"ReportingInterval\": 3600,\n \"RootName\": \"searchResult\",\n \"TimeReference\": \"0001-01-01T00:00:00Z\",\n \"Parameter\": [\n {\n \"type\": \"dataModel\",\n \"name\": \"Time\",\n \"reference\": \"Device.Time.X_RDK_CurrentUTCTime\"\n },\n {\n \"type\": \"dataModel\",\n \"name\": \"CMMAC_split\",\n \"reference\": \"Device.DeviceInfo.COM_CM_MAC\"\n },\n {\n \"type\": \"dataModel\",\n \"name\": \"Version\",\n \"reference\": \"Device.DeviceInfo.SoftwareVersion\"\n },\n {\n \"type\": \"dataModel\",\n \"name\": \"mac\",\n \"reference\": \"Device.DeviceInfo.COM_WAN_MAC\"\n }\n ],\n \"HTTP\": {\n \"URL\": \"https://test.com\",\n \"Compression\": \"None\",\n \"Method\": \"POST\",\n \"RequestURIParameter\": [\n {\n \"Name\": \"Wifi_ClientRadioTelemetry\",\n \"Reference\": \"Wifi markers\"\n }\n ]\n },\n \"JSONEncoding\": {\n \"ReportFormat\": \"NameValuePair\",\n \"ReportTimestamp\": \"None\"\n }\n}",
"applicationType": "stb"
}
] |
Response Codes: 200
Response Body: list of Telemetry 2.0 Profiles
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
} |
No Format |
---|
GET http://<host>:<port>/telemetry/v2/profile/{id}?applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType parameter is required.
Response Body: Telemetry 2.0 Profile
No Format |
---|
{
"@type": "TelemetryTwoProfile",
"id": "d46afcad-42d4-4a83-8c4a-540268921998",
"updated": 1682348672800,
"name": "WhixTelemetry",
"jsonconfig": "{\n \"Protocol\": \"HTTP\",\n \"EncodingType\": \"JSON\",\n \"GenerateNow\": false,\n \"ReportingInterval\": 3600,\n \"RootName\": \"searchResult\",\n \"TimeReference\": \"0001-01-01T00:00:00Z\",\n \"Parameter\": [\n {\n \"type\": \"dataModel\",\n \"name\": \"Time\",\n \"reference\": \"Device.Time.X_RDK_CurrentUTCTime\"\n },\n {\n \"type\": \"dataModel\",\n \"name\": \"CMMAC_split\",\n \"reference\": \"Device.DeviceInfo.COM_CM_MAC\"\n },\n {\n \"type\": \"dataModel\",\n \"name\": \"Version\",\n \"reference\": \"Device.DeviceInfo.SoftwareVersion\"\n },\n {\n \"type\": \"dataModel\",\n \"name\": \"mac\",\n \"reference\": \"Device.DeviceInfo.COM_WAN_MAC\"\n }\n ],\n \"HTTP\": {\n \"URL\": \"https://test.com\",\n \"Compression\": \"None\",\n \"Method\": \"POST\",\n \"RequestURIParameter\": [\n {\n \"Name\": \"Wifi_ClientRadioTelemetry\",\n \"Reference\": \"Wifi markers\"\n }\n ]\n },\n \"JSONEncoding\": {\n \"ReportFormat\": \"NameValuePair\",\n \"ReportTimestamp\": \"None\"\n }\n}",
"applicationType": "stb"
} |
Response Codes: 200, 404
NEW CHANGES:
No Format |
---|
{
"status": 404,
"type": "EntityNotFoundException",
"message": "Entity with id 1d46afcad-42d4-4a83-8c4a-540268921998 does not exist"
} |
No Format |
---|
POST http://<host>:<port>/telemetry/v2/profile?applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType parameter is required.
Request Body: Telemetry 2.0 Profile with of without id
No Format |
---|
{
"name": "TEST TEST",
"jsonconfig": "{\n \"Protocol\": \"HTTP\",\n \"EncodingType\": \"JSON\",\n \"GenerateNow\": false,\n \"ReportingInterval\": 3600,\n \"RootName\": \"searchResult\",\n \"TimeReference\": \"0001-01-01T00:00:00Z\",\n \"Parameter\": [\n {\n \"type\": \"dataModel\",\n \"name\": \"Time\",\n \"reference\": \"Device.Time.X_RDK_CurrentUTCTime\"\n },\n {\n \"type\": \"dataModel\",\n \"name\": \"CMMAC_split\",\n \"reference\": \"Device.DeviceInf.COM_CM_MAC\"\n },\n {\n \"type\": \"dataModel\",\n \"name\": \"Version\",\n \"reference\": \"Device.DeviceInfo.SoftwareVersion\"\n },\n {\n \"type\": \"dataModel\",\n \"name\": \"mac\",\n \"reference\": \"Device.DeviceInfo.COM_WAN_MAC\"\n }\n ],\n \"HTTP\": {\n \"URL\": \"https://test.com\",\n \"Compression\": \"None\",\n \"Method\": \"POST\",\n \"RequestURIParameter\": [\n {\n \"Name\": \"Wifi_ClientRadioTelemetry\",\n \"Reference\": \"Wifi markers\"\n }\n ]\n },\n \"JSONEncoding\": {\n \"ReportFormat\": \"NameValuePair\",\n \"ReportTimestamp\": \"None\"\n }\n}"
} |
Response Codes: 201, 400, 409
NEW CHANGES:
No Format |
---|
{
"status": 409,
"type": "EntityConflictException",
"message": "Entity with id: d46afcad-42d4-4a83-8c4a-540268921998 already exists"
} |
No Format |
---|
PUT http://<host>:<port>/telemetry/v2/profile?applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType parameter is required.
Request Body: Telemetry Profile
No Format |
---|
{
"id": "8fb459f6-044e-4c64-99ff-e0c7c1b4124b",
"updated": 1646687418358,
"name": "test",
"jsonconfig": "{\n \"Description\": \"Profile to test the support for lesser than operator in trigger conditions\",\n \"Version\": \"2\",\n \"Protocol\": \"HTTP\",\n \"EncodingType\": \"JSON\",\n \"ReportingInterval\": 240,\n \"ActivationTimeOut\": 2400,\n \"Parameter\": [\n {\n \"type\": \"dataModel\",\n \"reference\": \"Profile.Name\"\n },\n {\n \"type\": \"dataModel\",\n \"reference\": \"Profile.Version\"\n },\n {\n \"type\": \"dataModel\",\n \"reference\": \"Device.DeviceInfo.UpTime\",\n \"use\": \"absolute\"\n },\n {\n \"type\": \"event\",\n \"eventName\": \"NF_INFO_codedumped\",\n \"component\": \"sysint\",\n \"use\": \"count\",\n \"reportEmpty\": false\n },\n {\n \"type\": \"dataModel\",\n \"reference\": \"Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.hwHealthTest.dramThreshold\",\n \"method\": \"subscribe\"\n },\n { \"type\":\"dataModel\", \n \"reference\":\"Device.WiFi.Radio.1.Stats.Noise\",\n \"method\": \"get\"\n }\n ],\n \"TriggerCondition\": [\n {\n \"type\": \"dataModel\",\n \"operator\": \"gt\",\n \"threshold\": 20,\n \"minThresholdDuration\": 0,\n \"reference\": \"Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.hwHealthTest.dramThreshold\",\n \"report\":false\n }\n ],\n \"HTTP\": {\n \"URL\": \"https://test.com/\",\n \"Compression\": \"None\",\n \"Method\": \"POST\",\n \"RequestURIParameter\": [\n {\n \"Name\": \"reportName\",\n \"Reference\": \"Profile.Name\"\n }\n ]\n },\n \"JSONEncoding\": {\n \"ReportFormat\": \"NameValuePair\",\n \"ReportTimestamp\": \"None\"\n }\n}",
"applicationType": "rdkcloud"
} |
Response Codes: 200, 400, 404, 409
NEW CHANGES:
No Format |
---|
{
"status": 404,
"type": "EntityNotFoundException",
"message": "Entity with id: 1d46afcad-42d4-4a83-8c4a-540268921998 does not exist"
} |
No Format |
---|
DELETE http://<host>:<port>/telemetry/v2/profile/{id}?applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType parameter is required.
Response Codes: 204, 404, 409.
NEW CHANGES:
No Format |
---|
{
"status": 409,
"type": "EntityConflictException",
"message": "Can't delete profile as it's used in telemetry rule: aaa"
} |
No Format |
---|
POST http://<host>:<port>/telemetry/v2/profile/change?applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType parameter is required.
Request Body: telemetry 2.0 profile
No Format |
---|
{
"name": "test",
"jsonconfig": "{\n \"Description\": \"Profile to test the support for lesser than operator in trigger conditions\",\n \"Version\": \"2\",\n \"Protocol\": \"HTTP\",\n \"EncodingType\": \"JSON\",\n \"ReportingInterval\": 240,\n \"ActivationTimeOut\": 2400,\n \"Parameter\": [\n {\n \"type\": \"dataModel\",\n \"reference\": \"Profile.Name\"\n },\n {\n \"type\": \"dataModel\",\n \"reference\": \"Profile.Version\"\n },\n {\n \"type\": \"dataModel\",\n \"reference\": \"Device.DeviceInfo.UpTime\",\n \"use\": \"absolute\"\n },\n {\n \"type\": \"event\",\n \"eventName\": \"NF_INFO_codedumped\",\n \"component\": \"sysint\",\n \"use\": \"count\",\n \"reportEmpty\": false\n },\n {\n \"type\": \"dataModel\",\n \"reference\": \"Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.hwHealthTest.dramThreshold\",\n \"method\": \"subscribe\"\n },\n { \"type\":\"dataModel\", \n \"reference\":\"Device.WiFi.Radio.1.Stats.Noise\",\n \"method\": \"get\"\n }\n ],\n \"TriggerCondition\": [\n {\n \"type\": \"dataModel\",\n \"operator\": \"gt\",\n \"threshold\": 20,\n \"minThresholdDuration\": 0,\n \"reference\": \"Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.hwHealthTest.dramThreshold\",\n \"report\":false\n }\n ],\n \"HTTP\": {\n \"URL\": \"https://test.com/\",\n \"Compression\": \"None\",\n \"Method\": \"POST\",\n \"RequestURIParameter\": [\n {\n \"Name\": \"reportName\",\n \"Reference\": \"Profile.Name\"\n }\n ]\n },\n \"JSONEncoding\": {\n \"ReportFormat\": \"NameValuePair\",\n \"ReportTimestamp\": \"None\"\n }\n}",
"applicationType": "rdkcloud"
} |
Response Code: 201, 400
Response Body: telemetry 2.0 profile change:
Code Block |
---|
{
"id": "3af4204b-ea9e-4f26-9254-1b83cf3dee01",
"updated": 1659722159734,
"entityId": "8205d716-8e45-4570-a34b-f1ebe0bdc75e",
"entityType": "TELEMETRY_TWO_PROFILE",
"newEntity": {
"@type": "TelemetryTwoProfile",
"id": "8205d716-8e45-4570-a34b-f1ebe0bdc75e",
"updated": 1621625846548,
"name": "Test Telemetry 2.0 Profile name",
"jsonconfig": "{\n \"Description\":\"Test1\",\n \"Version\":\"0.1\",\n \"Protocol\":\"HTTP\",\n \"EncodingType\":\"JSON\",\n \"ReportingInterval\":43200,\n \"TimeReference\":\"0001-01-01T00:00:00Z\",\n \"Parameter\":\n [\n { \"type\": \"dataModel\", \"reference\": \"Profile.Name\"}, \n { \"type\": \"dataModel\", \"reference\": \"Profile.Version\"},\n { \"type\": \"grep\", \"marker\": \"Connie_marker1\", \"search\":\"restart 'lock to rescue CMTS retry' timer\", \"logFile\":\"cmconsole.log\" }\n\n ],\n \"HTTP\": {\n \"URL\":\"https://test.com\",\n \"Compression\":\"None\",\n \"Method\":\"POST\",\n \"RequestURIParameter\": [\n {\"Name\":\"profileName\", \"Reference\":\"Profile.Name\" },\n {\"Name\":\"reportVersion\", \"Reference\":\"Profile.Version\" }\n ]\n\n },\n \"JSONEncoding\": {\n \"ReportFormat\":\"NameValuePair\",\n \"ReportTimestamp\": \"None\"\n }\n\n}",
"applicationType": "stb"
},
"operation": "CREATE",
"author": "UNKNOWN_USER"
} |
NEW CHANGES:
No Format |
---|
{
"status": 409,
"type": "EntityConflictException",
"message": "TelemetryTwo Profile with such name exists: TEST TEST"
} |
No Format |
---|
PUT http://<host>:<port>/telemetry/v2/profile/change?applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType parameter is required.
Request Body: telemetry 2.0 profile
No Format |
---|
{
"id": "8fb459f6-044e-4c64-99ff-e0c7c1b4124b",
"name": "test",
"jsonconfig": "{\n \"Description\": \"Profile to test the support for lesser than operator in trigger conditions\",\n \"Version\": \"2\",\n \"Protocol\": \"HTTP\",\n \"EncodingType\": \"JSON\",\n \"ReportingInterval\": 240,\n \"ActivationTimeOut\": 2400,\n \"Parameter\": [\n {\n \"type\": \"dataModel\",\n \"reference\": \"Profile.Name\"\n },\n {\n \"type\": \"dataModel\",\n \"reference\": \"Profile.Version\"\n },\n {\n \"type\": \"dataModel\",\n \"reference\": \"Device.DeviceInfo.UpTime\",\n \"use\": \"absolute\"\n },\n {\n \"type\": \"event\",\n \"eventName\": \"NF_INFO_codedumped\",\n \"component\": \"sysint\",\n \"use\": \"count\",\n \"reportEmpty\": false\n },\n {\n \"type\": \"dataModel\",\n \"reference\": \"Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.hwHealthTest.dramThreshold\",\n \"method\": \"subscribe\"\n },\n { \"type\":\"dataModel\", \n \"reference\":\"Device.WiFi.Radio.1.Stats.Noise\",\n \"method\": \"get\"\n }\n ],\n \"TriggerCondition\": [\n {\n \"type\": \"dataModel\",\n \"operator\": \"gt\",\n \"threshold\": 20,\n \"minThresholdDuration\": 0,\n \"reference\": \"Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.hwHealthTest.dramThreshold\",\n \"report\":false\n }\n ],\n \"HTTP\": {\n \"URL\": \"https://test.com/\",\n \"Compression\": \"None\",\n \"Method\": \"POST\",\n \"RequestURIParameter\": [\n {\n \"Name\": \"reportName\",\n \"Reference\": \"Profile.Name\"\n }\n ]\n },\n \"JSONEncoding\": {\n \"ReportFormat\": \"NameValuePair\",\n \"ReportTimestamp\": \"None\"\n }\n}",
"applicationType": "rdkcloud"
} |
Response Code: 200, 400
Response Body: telemetry 2.0 profile change:
Code Block |
---|
{
"id": "c3fee291-5376-40cf-88a3-96aadaa0e28b",
"updated": 1659727767163,
"entityId": "8205d716-8e45-4570-a34b-f1ebe0bdc75e",
"entityType": "TELEMETRY_TWO_PROFILE",
"newEntity": {
"@type": "TelemetryTwoProfile",
"id": "8205d716-8e45-4570-a34b-f1ebe0bdc75e",
"updated": 1621625846548,
"name": "Test Telemetry 2.0 Profile name",
"jsonconfig": "{\n \"Description\":\"Test1\",\n \"Version\":\"0.1\",\n \"Protocol\":\"HTTP\",\n \"EncodingType\":\"JSON\",\n \"ReportingInterval\":43200,\n \"TimeReference\":\"0001-01-01T00:00:00Z\",\n \"Parameter\":\n [\n { \"type\": \"dataModel\", \"reference\": \"Profile.Name\"}, \n { \"type\": \"dataModel\", \"reference\": \"Profile.Version\"},\n { \"type\": \"grep\", \"marker\": \"Connie_marker1\", \"search\":\"restart 'lock to rescue CMTS retry' timer\", \"logFile\":\"cmconsole.log\" }\n\n ],\n \"HTTP\": {\n \"URL\":\"https://test.com\",\n \"Compression\":\"None\",\n \"Method\":\"POST\",\n \"RequestURIParameter\": [\n {\"Name\":\"profileName\", \"Reference\":\"Profile.Name\" },\n {\"Name\":\"reportVersion\", \"Reference\":\"Profile.Version\" }\n ]\n\n },\n \"JSONEncoding\": {\n \"ReportFormat\":\"NameValuePair\",\n \"ReportTimestamp\": \"None\"\n }\n\n}",
"applicationType": "stb"
},
"oldEntity": {
"@type": "TelemetryTwoProfile",
"id": "8205d716-8e45-4570-a34b-f1ebe0bdc75e",
"updated": 1659727722268,
"name": "Test Telemetry 2.0 Profile name",
"jsonconfig": "{\n \"Description\":\"Test1\",\n \"Version\":\"0.1\",\n \"Protocol\":\"HTTP\",\n \"EncodingType\":\"JSON\",\n \"ReportingInterval\":43200,\n \"TimeReference\":\"0001-01-01T00:00:00Z\",\n \"Parameter\":\n [\n { \"type\": \"dataModel\", \"reference\": \"Profile.Name\"}, \n { \"type\": \"dataModel\", \"reference\": \"Profile.Version\"},\n { \"type\": \"grep\", \"marker\": \"Connie_marker1\", \"search\":\"restart 'lock to rescue CMTS retry' timer\", \"logFile\":\"cmconsole.log\" }\n\n ],\n \"HTTP\": {\n \"URL\":\"https://test.com\",\n \"Compression\":\"None\",\n \"Method\":\"POST\",\n \"RequestURIParameter\": [\n {\"Name\":\"profileName\", \"Reference\":\"Profile.Name\" },\n {\"Name\":\"reportVersion\", \"Reference\":\"Profile.Version\" }\n ]\n\n },\n \"JSONEncoding\": {\n \"ReportFormat\":\"NameValuePair\",\n \"ReportTimestamp\": \"None\"\n }\n\n}",
"applicationType": "stb"
},
"operation": "UPDATE",
"author": "UNKNOWN_USER"
} |
NEW CHANGES:
No Format |
---|
{
"status": 404,
"type": "EntityNotFoundException",
"message": "Entity with id: -7c43c035-0d7c-4ea5-bbb5-77eacec91e5f does not exist"
} |
No Format |
---|
DELETE http://<host>:<port>/telemetry/v2/profile/change/{profile id}?applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType parameter is required.
Response statuls: 200, 404, 409
No Format |
---|
{
"id": "6c72b3ae-08d0-48a1-90dc-3a942fb49d0a",
"updated": 1659727950173,
"entityId": "8205d716-8e45-4570-a34b-f1ebe0bdc75e",
"entityType": "TELEMETRY_TWO_PROFILE",
"oldEntity": {
"@type": "TelemetryTwoProfile",
"id": "8205d716-8e45-4570-a34b-f1ebe0bdc75e",
"updated": 1659727722268,
"name": "Test Telemetry 2.0 Profile name",
"jsonconfig": "{\n \"Description\":\"Test1\",\n \"Version\":\"0.1\",\n \"Protocol\":\"HTTP\",\n \"EncodingType\":\"JSON\",\n \"ReportingInterval\":43200,\n \"TimeReference\":\"0001-01-01T00:00:00Z\",\n \"Parameter\":\n [\n { \"type\": \"dataModel\", \"reference\": \"Profile.Name\"}, \n { \"type\": \"dataModel\", \"reference\": \"Profile.Version\"},\n { \"type\": \"grep\", \"marker\": \"Connie_marker1\", \"search\":\"restart 'lock to rescue CMTS retry' timer\", \"logFile\":\"cmconsole.log\" }\n\n ],\n \"HTTP\": {\n \"URL\":\"https://test.com\",\n \"Compression\":\"None\",\n \"Method\":\"POST\",\n \"RequestURIParameter\": [\n {\"Name\":\"profileName\", \"Reference\":\"Profile.Name\" },\n {\"Name\":\"reportVersion\", \"Reference\":\"Profile.Version\" }\n ]\n\n },\n \"JSONEncoding\": {\n \"ReportFormat\":\"NameValuePair\",\n \"ReportTimestamp\": \"None\"\n }\n\n}",
"applicationType": "stb"
},
"operation": "DELETE",
"author": "UNKNOWN_USER"
} |
NEW CHANGES:
No Format |
---|
{
"status": 409,
"type": "EntityConflictException",
"message": "Can't delete profile as it's used in telemetry rule: aaa"
} |
All not selected changes by entity id will be canceled. For example, there are two changes, "change A" and "change B", id of "change A" is sent to approve, in result "change A" will be approved and "change B" will be canceled
No Format |
---|
POST http://<host>:<port>/change/approve/byChangeIds
Headers:
Accept = application/json
Content-Type = application/json
|
Request Body: array with change ids
No Format |
---|
["4705486f-2dcc-4ae9-a920-a45b33755993"] |
Response Codes: 200, 404, 409
Response Body: change id - error message object. If change successfully approve an empty object is returned
To approve all changes by entity id
No Format |
---|
GET http://<host>:<port>/change/approve/byEntityId/{id}
Headers:
Accept = application/json
Content-Type = application/json
|
Response Codes: 200, 404, 409
Response Body: change id - error message object. If change successfully approve an empty object is returned
No Format |
---|
GET http://<host>:<port>/change/cancel/{changeId}?applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType is required parameter
Response status: 200, 400, 404.
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": " Change with 3cfb76d0-6448-401f-9204-50a1556743b3 id does not exist"
} |
No Format |
---|
GET http://<host>:<port>/change/all?applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType is required parameter
Response Codes: 200
Response Body: array with all telemetry changes
No Format |
---|
[
{
"id": "753b23b6-7269-4ce3-afb8-9e6599f14407",
"updated": 1650378702485,
"entityId": "3081f7d2-4364-4c55-a9c4-daf489196d0b",
"entityType": "TELEMETRY_PROFILE",
"newEntity": {
"@type": "PermanentTelemetryProfile",
"id": "3081f7d2-4364-4c55-a9c4-daf489196d0b",
"telemetryProfile": [
{
"id": "0fad3efd-d4c6-4380-8d2b-e63e080d75d9",
"header": "new entry",
"content": "test CHANGE 2",
"type": "aa",
"pollingFrequency": "3",
"component": "tete"
}
],
"schedule": "1 1 1 1 54",
"expires": 0,
"applicationType": "xhome",
"telemetryProfile:name": "2 API created PENDING CHANGES XHOME",
"uploadRepository:URL": "https://test-change-4.com",
"uploadRepository:uploadProtocol": "HTTPS"
},
"operation": "CREATE",
"author": "UNKNOWN_USER"
}
] |
NEW CHANGES:
No Format |
---|
{
"status": 409,
"type": "EntityConflictException",
"message": "Can't delete profile as it's used in telemetry rule: aaa"
} |
All not selected changes by entity id will be canceled. For example, there are two changes, "change A" and "change B", id of "change A" is sent to approve, in result "change A" will be approved and "change B" will be canceled
No Format |
---|
POST http://<host>:<port>/change/v2/approve/byChangeIds
Headers:
Accept = application/json
Content-Type = application/json |
Request Body: array with change ids
No Format |
---|
["4705486f-2dcc-4ae9-a920-a45b33755993"] |
Response Codes: 200, 404, 409
Response Body: change id - error message object. If change successfully approve an empty object is returned
To approve all changes by entity id
No Format |
---|
GET http://<host>:<port>/change/v2/approve/byEntityId/{id} |
Response Codes: 200, 404, 409
Response Body: change id - error message object. If change successfully approve an empty object is returned
No Format |
---|
GET http://<host>:<port>/telemetry/v2/change/cancel/{changeId}?applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType is required.
Response status: 200, 404
NEW CHANGES:
No Format |
---|
{
"status": 400,
"type": "ValidationRuntimeException",
"message": "ApplicationType is empty"
} |
No Format |
---|
GET http://<host>:<port>/telemetry/v2/change/all?applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
applicationType is required.
Response Codes: 200
Response Body: array with all telemetry changes
No Format |
---|
[ {
"id": "f4ed5948-ba3f-4ccf-a98e-325968dc5fcd",
"updated": 1659034541903,
"entityId": "8205d716-8e45-4570-a34b-f1ebe0bdc75e",
"entityType": "TELEMETRY_TWO_PROFILE",
"newEntity": {
"@type": "TelemetryTwoProfile",
"id": "8205d716-8e45-4570-a34b-f1ebe0bdc75e",
"updated": 1621625846548,
"name": "Test - changed again with approval",
"jsonconfig": "{\n \"Description\":\"Test1\",\n \"Version\":\"0.1\",\n \"Protocol\":\"HTTP\",\n \"EncodingType\":\"JSON\",\n \"ReportingInterval\":43200,\n \"TimeReference\":\"0001-01-01T00:00:00Z\",\n \"Parameter\":\n [\n { \"type\": \"dataModel\", \"reference\": \"Profile.Name\"}, \n { \"type\": \"dataModel\", \"reference\": \"Profile.Version\"},\n { \"type\": \"grep\", \"marker\": \"Connie_marker1\", \"search\":\"restart 'lock to rescue CMTS retry' timer\", \"logFile\":\"cmconsole.log\" }\n\n ],\n \"HTTP\": {\n \"URL\":\"https://test.com\",\n \"Compression\":\"None\",\n \"Method\":\"POST\",\n \"RequestURIParameter\": [\n {\"Name\":\"profileName\", \"Reference\":\"Profile.Name\" },\n {\"Name\":\"reportVersion\", \"Reference\":\"Profile.Version\" }\n ]\n\n },\n \"JSONEncoding\": {\n \"ReportFormat\":\"NameValuePair\",\n \"ReportTimestamp\": \"None\"\n }\n\n}",
"applicationType": "stb"
},
"oldEntity": {
"@type": "TelemetryTwoProfile",
"id": "8205d716-8e45-4570-a34b-f1ebe0bdc75e",
"updated": 1659034476135,
"name": "Test - changed with approval",
"jsonconfig": "{\n \"Description\":\"Test1\",\n \"Version\":\"0.1\",\n \"Protocol\":\"HTTP\",\n \"EncodingType\":\"JSON\",\n \"ReportingInterval\":43200,\n \"TimeReference\":\"0001-01-01T00:00:00Z\",\n \"Parameter\":\n [\n { \"type\": \"dataModel\", \"reference\": \"Profile.Name\"}, \n { \"type\": \"dataModel\", \"reference\": \"Profile.Version\"},\n { \"type\": \"grep\", \"marker\": \"Connie_marker1\", \"search\":\"restart 'lock to rescue CMTS retry' timer\", \"logFile\":\"cmconsole.log\" }\n\n ],\n \"HTTP\": {\n \"URL\":\"https://test.com\",\n \"Compression\":\"None\",\n \"Method\":\"POST\",\n \"RequestURIParameter\": [\n {\"Name\":\"profileName\", \"Reference\":\"Profile.Name\" },\n {\"Name\":\"reportVersion\", \"Reference\":\"Profile.Version\" }\n ]\n\n },\n \"JSONEncoding\": {\n \"ReportFormat\":\"NameValuePair\",\n \"ReportTimestamp\": \"None\"\n }\n\n}",
"applicationType": "stb"
},
"operation": "UPDATE",
"author": "UNKNOWN_USER"
} ] |
NEW CHANGES:
No Format |
---|
{
"status": 409,
"type": "EntityConflictException",
"message": "Can't delete profile as it's used in telemetry rule: aaa"
} |
No Format |
---|
POST http://<host>:<port>/firmwarerule/?applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
Request body:
No Format |
---|
{"name":"test","rule":{"compoundParts":[{"condition":{"freeArg":{"type":"STRING","name":"model"},"operation":"IS","fixedArg":{"bean":{"value":{"j ava.lang.String":"123343224"}}}},"negated":false}],"negated":false},"applicableAction":{"type":"com.xconf.firmware.RuleAction","actionType":" RULE","configId":"0abee588-9559-4c4d-90f9-2adc4bf314d3","configEntries":[]},"applicationType":"stb","type":"CUG_IV"} |
Response Status: 201 Created
Response Body:
No Format |
---|
{"id":"2ea59bab-b080-4593-8539-fb6db5fc8fd5","updated":1698923585067,"name":"test","applicableAction":{"type":"com.xconf.firmwa re.RuleAction","actionType":"RULE","configId":"0abee588-9559-4c4d-90f9-2adc4bf314d3","configEntries":[],"active":true,"useAccountPercentage":fals e,"firmwareCheckRequired":false,"rebootImmediately":false},"rule":{"compoundParts":[{"condition":{"freeArg":{"type":"STRING","name":"model"},"opera tion":"IS","fixedArg":{"bean":{"value":{"java.lang.String":"123343224"}}}},"negated":false}],"negated":false},"type":"CUG_IV","active":true,"applicationType":"stb"} |
No Format |
---|
PUT http://<host>:<port>/firmwarerule/?applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
Request Body:
No Format |
---|
{"id":"2ea59bab-b080-4593-8539-fb6db5fc8fd5","updated":1698923585067,"name":"test","applicableAction":{"type":"com.xconf.firmware.RuleAction","actionType":"RULE","configId":"0abee588-9559-4c4d-90f9-2adc4bf314d3","configEntries":[],"active":true,"useAccountPercentage":fals e,"firmwareCheckRequired":false,"rebootImmediately":false},"rule":{"compoundParts":[{"condition":{"freeArg":{"type":"STRING","name":"model"},"opera tion":"IS","fixedArg":{"bean":{"value":{"java.lang.String":"123343224"}}}},"negated":false}],"negated":false},"type":"CUG_IV","active":true,"applicationType":"stb"} |
Response Status : 200 Ok
Response Body:
No Format |
---|
{"id":"2ea59bab-b080-4593-8539-fb6db5fc8fd5","updated":1698923683332,"name":"test","applicableAction":{"type":"com.xconf.firmware.RuleAction","actionType":"RULE","configId":"0abee588-9559-4c4d-90f9-2adc4bf314d3","configEntries":[],"active":true,"useAccountPercentage":fals e,"firmwareCheckRequired":false,"rebootImmediately":false},"rule":{"compoundParts":[{"condition":{"freeArg":{"type":"STRING","name":"model"},"opera tion":"IS","fixedArg":{"bean":{"value":{"java.lang.String":"123343224"}}}},"negated":false}],"negated":false},"type":"CUG_IV","active":true,"applicationType":"stb"} |
No Format |
---|
DELETE http://<host>:<port>/firmwarerule/2ea59bab-b080-4593-8539-fb6db5fc8fd5
Headers:
Accept = application/json
Content-Type = application/json
|
Request Body: 204 No Content
No Format |
---|
POST http://<host>:<port>/firmwareruletemplate/?applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
Request Body:
No Format |
---|
{"name":"","rule":{"negated":false,"relation":null,"compoundParts":[{"negated":false,"relation":null,"compoundParts":[],"condition":{"freeArg":{"type":"STR ING","name":"eStbMac"},"operation":"IS","fixedArg":{"bean":{"value":{"java.lang.String":""}}}}},{"negated":false,"relation":"OR","compoundParts":[],"cond ition":{"freeArg":{"type":"STRING","name":"ipAddress"},"operation":"IS","fixedArg":{"bean":{"value":{"java.lang.String":""}}}}}],"condition":null},"applicable Action":{"type":"com.xconf.firmware.RuleAction","actionType":"RULE_TEMPLATE","configId":null},"priority":169,"id":"Test Template","editable":true} |
Response Status : 201 Created
Response Body:
No Format |
---|
{"id":"Test Template","updated":1698936248053,"rule":{"compoundParts":[{"condition":{"freeArg":{"type":"STRING","name":"eStbMac"},"operation":"IS","fixedArg": {"bean":{"value":{"java.lang.String":""}}}},"negated":false},{"condition":{"freeArg":{"type":"STRING","name":"ipAddress"},"operation":"IS","fixedArg":{"bea n":{"value":{"java.lang.String":""}}}},"negated":false,"relation":"OR"}],"negated":false},"applicableAction":{"type":"com.xconf.firmware.RuleActio n","actionType":"RULE_TEMPLATE","active":false,"useAccountPercentage":false,"firmwareCheckRequired":false,"rebootImmediately":false},"priority": 169,"editable":true} |
No Format |
---|
POST http://<host>:<port>/firmwareruletemplate/?applicationType=stb
Headers:
Accept = application/json
Content-Type = application/json
|
Request Body:
No Format |
---|
{"id":"Test Template","updated":1698936248053,"rule":{"compoundParts":[{"condition":{"freeArg":{"type":"STRING","name":"eStbMac"},"operation":"IS","fixedArg": {"bean":{"value":{"java.lang.String":""}}}},"negated":false},{"condition":{"freeArg":{"type":"STRING","name":"ipAddress"},"operation":"IS","fixedArg":{"bean":{"value":{"java.lang.String":""}}}},"negated":false,"relation":"OR"},{"negated":false,"relation":"OR","compoundParts":[],"condition":{"freeArg":{"type":"S TRING","name":"firmwareVersion"},"operation":"IS","fixedArg":{"bean":{"value":{"java.lang.String":""}}}}}],"negated":false},"applicableAction":{"type":"co m.xconf.firmware.RuleAction","actionType":"RULE_TEMPLATE","active":false,"useAccountPercentage":false,"firmwareCheckRequired":false, "rebootImmediately":false},"priority":169,"editable":true} |
Response Status : 200 OK
No Format |
---|
POST http://<host>:<port>/firmwareruletemplate/testTemplateName
Headers:
Content-Type = application/json
|
Response Status: 204 No Content