Here is
new documentation version.
You are reading outdated documentation, which will be shutdown soon!
REST API
Endpoint Register REST API documentation version v1
{schema}://{host}/api/{version}
- schema: required(one of http, https - default: http)
- host: required(string - default: localhost)
- version: required(v1)
Endpoints
Operations on endpoints, metadata management.
post /endpoints
Registers new endpoints within specified application version.
- application:endpoint:create
EPR supports OAuth 2.0 for authenticating all API requests.
Body
Media type: application/json
Type: object
Properties
- appVersion: required(object)
- name: required(string)
Name of the application version.
- name: required(string)
- metadata: optional (object)
Endpoint metadata consists of multiple key-value pairs (called fields) where keys are strings, and the values are of any JSON type.
- endpointToken: optional (string - pattern: ^[^+#/.]+$)
Endpoint token. Will be auto-generated if not present.
Must be application-scope unique. Must not contain plus signs (`+`), number signs (`#`), forward slashes (`/`), or periods (`.`).
- endpointId: optional (string - pattern: ^[a-zA-Z0-9._~-]+$)
Endpoint ID. Will be auto-generated if not present.
Must be globally unique. Must contain only URL unreserved characters.
Example:
{
"appVersion": {
"name":"example_app_v1"
},
"metadata": {
"level": 3,
"room": 234
},
"endpointToken": "02226466-e744-48ac-8f0c-a57fe4e77de4",
"endpointId": "67b27f9b-c4d1-41dc-b21f-2917b74c467a"
}
HTTP status code 201
Endpoint successfully registered within the application version.
Headers
- Location: required(string)
URI in format
{schema}://{host}:{port}/api/v1/endpoints/{endpointId}
Example:
http://example.com/api/v1/endpoints/79c717d9-eedd-4f71-b9f8-86caf7e309e4
Body
Media type: application/json
Type: object
Properties
- token: required(string)
Endpoint token.
- status: required(Inactive)
Status of newly provisioned token is always
Inactive
.
Token status will be automatically changed toActive
after first successful token validation request.
Example:
{
"token": "02226466-e744-48ac-8f0c-a57fe4e77de4",
"status": "Inactive"
}
HTTP status code 400
Invalid application version name.
HTTP status code 403
User does not have permissions to perform this operation.
Secured by oauth_2_0
Headers
- Authorization: optional (string)
Used to send a valid OAuth 2 access token. Example: "Authorization: Bearer 'access_token'" where 'access_token' must be replaced by a valid OAuth access token. This header is needed only if API authentication is enabled for the service.
get /endpoints
Returns information about endpoints that match query parameters. A response will contain information only about endpoints for which the querying user has appropriate authorization scope.
- endpoint:read
EPR supports OAuth 2.0 for authenticating all API requests.
Headers
- If-None-Match: optional (string)
Makes the request conditional.
The server will send the requested endpoint list with `200` status only if current `ETag` value doesn't match the specified one.
Otherwise, `304 Not Modified` status will be returned.Example:
"33a64df551425fcc55e4d42a148795d9f25f89d4"
Query Parameters
- endpointId: optional (string)
Endpoint identifier, can be one or multiple.
Example:
79c717d9-eedd-4f71-b9f8-86caf7e309e4
- applicationName: optional (string)
Filters endpoints by application name.
Example:
my-application
- applicationVersionName: optional (string)
Filters endpoints by application version name.
Example:
my-application-version
- offset: optional (integer)
Start index that the server should return data from.
Example:
0
- limit: optional (integer - default: 100)
Maximum number of items to return. To get all items limit must be 0.
Example:
1
- metadataFilter: optional (string)
Filter endpoints by a single metadata key-value pair.
**NOTE** Unsafe ASCII characters in the URL must be encoded according to Uniform Resource Locators RFC.
Example:
Only endpoints with metadata key
areaId
equal torouter01
are returned:{"areaID": "router01"}
- filterId: optional (string)
Filter endpoints by matching filter ID(s). If multiple
filterId
specified, the resultset will contain only endpoints that match all filters. Only querying by the filters withactive
status is allowed. - include: optional (one of metadata, filters)
- `metadata` – include `metadata` fields and `metadataUpdatedDate` fields in response.
- `filters` – include `matching_filters` fields in response.
By default, no metadata and filters are returned.
HTTP status code 200
Array of endpoint system attributes successfully retrieved.
Headers
- ETag: required(string)
Represents the current endpoint list state.
The value can be used in `If-Match` and `If-None-Match` headers.
Example:
"33a64df551425fcc55e4d42a148795d9f25f89d4"
Body
Media type: application/json
Type: object
Properties
- totalElements: required(integer)
Total number of elements available for retrieval. Current response may return only a part of all available elements.
- content: required(array of Endpoint)
Items: Endpoint
- endpointId: required(string)
Unique identifier of endpoint.
- createdDate: required(datetime)
Endpoint registration data in ISO 8601 format (UTC timezone).
- appVersion: required(object)
Information about endpoint registration wthin specific application version.
- name: required(string)
Name of the application version.
- registeredDate: required(datetime)
Date when endpoint registration data was created within specific application version.
- name: required(string)
- metadata: optional (object)
Endpoint metadata consists of multiple key-value pairs (called fields) where keys are strings, and the values are of any JSON type.
- metadataUpdatedDate: optional (datetime)
Timestamp in ISO 8601 format (UTC timezone) showing when the endpoint metadata was last updated.
- filters: required(array of )
List of filters that matches to the endpoint.
- endpointId: required(string)
Example:
{
"totalElements": 1,
"content": [
{
"endpointId": "5a67aa97-1f5c-41eb-a066-8e004157062b",
"createdDate": "2017-04-20T11:19:57.848Z",
"appVersion": {
"name": "example_app_v1",
"registeredDate": "2017-04-20T11:19:57.848Z"
},
"metadata": {
"OS": {
"type": "Linux",
"version": "4.10.6"
},
"tag": {
"id": "1"
},
"anyJsonType": [
11
]
},
"metadataUpdatedDate" : "2017-04-20T12:07:19.112Z",
"filters": [
"9e569809-e316-422f-851e-8d916ea0e89a"
]
}
]
}
HTTP status code 304
Resource(s) not modified.
HTTP status code 400
Invalid request.
Body
Media type: application/json
Type: object
Properties
- message: required(string)
Detailed error description.
Secured by oauth_2_0
Headers
- Authorization: optional (string)
Used to send a valid OAuth 2 access token. Example: "Authorization: Bearer 'access_token'" where 'access_token' must be replaced by a valid OAuth access token. This header is needed only if API authentication is enabled for the service.
/endpoints/{endpointId} get
get /endpoints/{endpointId}
Returns endpoint information.
- endpoint:read
EPR supports OAuth 2.0 for authenticating all API requests.
URI Parameters
- endpointId: required(string)
Identifier of the endpoint to operate on.
Example:
79c717d9-eedd-4f71-b9f8-86caf7e309e4
Headers
- If-None-Match: optional (string)
Makes the request conditional.
The server will send the requested endpoint with `200` status only if current `ETag` value doesn't match the specified one.
Otherwise, `304 Not Modified` status will be returned.Example:
"33a64df551425fcc55e4d42a148795d9f25f89d4"
- If-Modified-Since: optional (datetime)
Makes the request conditional.
The server will send the requested endpoint with `200` status only if current `Last-Modified` value doesn't match the specified one.
Otherwise, `304 Not Modified` status will be returned.Example:
Tue, 05 Sep 2017 08:21:44 GMT
Query Parameters
- include: optional (one of metadata, filters)
- `metadata` – include `metadata` fields and `metadataUpdatedDate` fields in response.
- `filters` – include `matching_filters` fields in response.
By default, no metadata and filters are returned.
HTTP status code 200
Object successfully retrieved.
Headers
- ETag: required(string)
Represents the current endpoint state.
The value can be used in `If-Match` and `If-None-Match` headers.
Example:
"33a64df551425fcc55e4d42a148795d9f25f89d4"
- Last-Modified: required(datetime)
The last modifcation date of endpoint.
Example:
Tue, 05 Sep 2017 08:21:44 GMT
Body
Media type: application/json
Type: object
Properties
- endpointId: required(string)
Unique identifier of endpoint.
- createdDate: required(datetime)
Endpoint registration data in ISO 8601 format (UTC timezone).
- appVersion: required(object)
Information about endpoint registration wthin specific application version.
- name: required(string)
Name of the application version.
- registeredDate: required(datetime)
Date when endpoint registration data was created within specific application version.
- name: required(string)
- metadata: optional (object)
Endpoint metadata consists of multiple key-value pairs (called fields) where keys are strings, and the values are of any JSON type.
- metadataUpdatedDate: optional (datetime)
Timestamp in ISO 8601 format (UTC timezone) showing when the endpoint metadata was last updated.
- filters: required(array of )
List of filters that matches to the endpoint.
Example:
{
"endpointId": "69c4c970-94ce-4608-bf36-736d16fdab82",
"createdDate": "2017-04-20T11:19:57.848Z",
"appVersion": {
"name": "example_app_v1",
"registeredDate": "2017-04-20T11:19:57.848Z"
},
"metadata": {
"OS": {
"type": "Linux",
"version": "4.10.6"
},
"tag": {
"id": "1"
},
"anyJsonType": [
11
]
},
"metadataUpdatedDate": "2017-04-20T15:01:12.144Z",
"filters": [
"58229325-8444-4394-a4c2-1ef2b44160f5"
]
}
HTTP status code 304
Resource(s) not modified.
HTTP status code 400
Invalid include
query parameter.
Body
Media type: application/json
Type: object
Properties
- message: required(string)
Detailed error description.
HTTP status code 404
Endpoint not found or querying user is not authorized for it.
Secured by oauth_2_0
Headers
- Authorization: optional (string)
Used to send a valid OAuth 2 access token. Example: "Authorization: Bearer 'access_token'" where 'access_token' must be replaced by a valid OAuth access token. This header is needed only if API authentication is enabled for the service.
get /endpoints/{endpointId}/app-version
Returns endpoint registration data within application version.
- endpoint:read
EPR supports OAuth 2.0 for authenticating all API requests.
URI Parameters
- endpointId: required(string)
Identifier of the endpoint to operate on.
Example:
79c717d9-eedd-4f71-b9f8-86caf7e309e4
HTTP status code 200
Endpoint registration data retrieved successfully.
Body
Media type: application/json
Type: object
Properties
- name: required(string)
Name of the application version.
- registeredDate: required(datetime)
Date when endpoint registration data was created within specific application version.
Example:
{
"name": "example_app_v1",
"registeredDate": "2017-04-20T11:19:57.848Z"
}
HTTP status code 404
Endpoint not found or querying user is not authorized for it.
Secured by oauth_2_0
Headers
- Authorization: optional (string)
Used to send a valid OAuth 2 access token. Example: "Authorization: Bearer 'access_token'" where 'access_token' must be replaced by a valid OAuth access token. This header is needed only if API authentication is enabled for the service.
put /endpoints/{endpointId}/app-version
Updates endpoint registration data with the application version.
- endpoint:update
EPR supports OAuth 2.0 for authenticating all API requests.
URI Parameters
- endpointId: required(string)
Identifier of the endpoint to operate on.
Example:
79c717d9-eedd-4f71-b9f8-86caf7e309e4
Body
Media type: application/json
Type: object
Properties
- name: required(string)
Name of the application version.
Example:
{
"name":"example_app_v2"
}
HTTP status code 204
Endpoint registration data updated successfully.
HTTP status code 400
Invalid application version name.
Body
Media type: application/json
Type: object
Properties
- message: required(string)
Detailed error description.
HTTP status code 404
Endpoint not found or querying user is not authorized for it.
Secured by oauth_2_0
Headers
- Authorization: optional (string)
Used to send a valid OAuth 2 access token. Example: "Authorization: Bearer 'access_token'" where 'access_token' must be replaced by a valid OAuth access token. This header is needed only if API authentication is enabled for the service.
get /endpoints/{endpointId}/metadata
Returns all metadata or requested metadata keys (must be a non-empty string containing Latin letters, digits, and underscores only) for a specific endpoint.
- endpoint:read
EPR supports OAuth 2.0 for authenticating all API requests.
URI Parameters
- endpointId: required(string)
Identifier of the endpoint to operate on.
Example:
79c717d9-eedd-4f71-b9f8-86caf7e309e4
Headers
- If-None-Match: optional (string)
Makes the request conditional.
The server will send the requested endpoint's metadata with `200` status only if current `ETag` value doesn't match the specified one.
Otherwise, `304 Not Modified` status will be returned.Example:
"33a64df551425fcc55e4d42a148795d9f25f89d4"
- If-Modified-Since: optional (datetime)
Makes the request conditional.
The server will send the requested endpoint's metadata with `200` status only if current `Last-Modified` value doesn't match the specified one.
Otherwise, `304 Not Modified` status will be returned.Example:
Tue, 05 Sep 2017 08:21:44 GMT
Query Parameters
- include: optional (string)
Only fields that match any of the
include
parameters are returned.
If not specified, all fields are returned.Example:
/endpoints/{endpointId}/metadata?include=key1&include=key2
HTTP status code 200
Endpoint metadata of the specified endpoint.
Headers
- ETag: required(string)
Represents the current endpoint's metadata state.
The value can be used in `If-Match` and `If-None-Match` headers.
Example:
"33a64df551425fcc55e4d42a148795d9f25f89d4"
- Last-Modified: required(datetime)
The last modifcation date of endpoint's metadata.
Example:
Tue, 05 Sep 2017 08:21:44 GMT
Body
Media type: application/json
Type: object
Example:
{
"OS":{
"type":"Linux",
"version":"4.10.6"
},
"tag":{
"id":"1"
},
"anyJsonType":[
11
]
}
HTTP status code 304
Resource(s) not modified.
HTTP status code 400
Metadata keys are not valid.
HTTP status code 404
Endpoint not found or querying user is not authorized for it.
Secured by oauth_2_0
Headers
- Authorization: optional (string)
Used to send a valid OAuth 2 access token. Example: "Authorization: Bearer 'access_token'" where 'access_token' must be replaced by a valid OAuth access token. This header is needed only if API authentication is enabled for the service.
put /endpoints/{endpointId}/metadata
Updates an endpoint metadata.
Endpoint metadata consists of multiple key-value pairs (called fields) where keys must be non-empty strings containing Latin letters, digits, and underscores only, while the values can be of any JSON type.
- endpoint:update
EPR supports OAuth 2.0 for authenticating all API requests.
URI Parameters
- endpointId: required(string)
Identifier of the endpoint to operate on.
Example:
79c717d9-eedd-4f71-b9f8-86caf7e309e4
Headers
- If-Match: optional (string)
Makes the request conditional.
The server will execute operation only if current `ETag` value matches the specified one.
Otherwise, `412 Precondition Failed` status will be returned.Example:
"33a64df551425fcc55e4d42a148795d9f25f89d4"
- If-Unmodified-Since: optional (datetime)
Makes the request conditional.
The server will execute operation only if current `Last-Modified` value matches the specified one.
Otherwise, `412 Precondition Failed` status will be returned.Example:
Tue, 05 Sep 2017 08:21:44 GMT
Body
Media type: application/json
Type: object
Example:
{
"OS":{
"type":"Linux",
"version":"4.10.6"
},
"tag":{
"id":"1"
},
"anyJsonType":[
11
]
}
HTTP status code 204
Endpoint metadata successfully updated.
HTTP status code 400
Payload is not a JSON object or metadata keys are not valid.
HTTP status code 404
Endpoint not found or querying user is not authorized for it.
HTTP status code 412
At least one of the preconditions specified in If-Match
or If-Unmodified-Since
headers failed.
Secured by oauth_2_0
Headers
- Authorization: optional (string)
Used to send a valid OAuth 2 access token. Example: "Authorization: Bearer 'access_token'" where 'access_token' must be replaced by a valid OAuth access token. This header is needed only if API authentication is enabled for the service.
patch /endpoints/{endpointId}/metadata
Applies JSON Patch to the endpoint metadata. If no metadata exists, it is created. Metadata keys must be non-empty strings containing Latin letters, digits, and underscores only.
- endpoint:update
EPR supports OAuth 2.0 for authenticating all API requests.
URI Parameters
- endpointId: required(string)
Identifier of the endpoint to operate on.
Example:
79c717d9-eedd-4f71-b9f8-86caf7e309e4
Headers
- If-Match: optional (string)
Makes the request conditional.
The server will execute operation only if current `ETag` value matches the specified one.
Otherwise, `412 Precondition Failed` status will be returned.Example:
"33a64df551425fcc55e4d42a148795d9f25f89d4"
- If-Unmodified-Since: optional (datetime)
Makes the request conditional.
The server will execute operation only if current `Last-Modified` value matches the specified one.
Otherwise, `412 Precondition Failed` status will be returned.Example:
Tue, 05 Sep 2017 08:21:44 GMT
Body
Media type: application/json-patch+json
Type: array
Example:
[
{ "op": "add", "path": "/location", "value": {"city":"Kiev", "street":"Nyzhnoiurkivska"} },
{ "op": "remove", "path": "/anyJsonType/0"},
{ "op": "move", "from": "/OS", "path": "/tag" }
]
HTTP status code 200
Endpoint metadata successfully patched.
Body
Media type: application/json
Type: object
Example:
{
"OS":{
"type":"Linux",
"version":"4.10.6"
},
"tag":{
"id":"1"
},
"anyJsonType":[
11
]
}
HTTP status code 400
Invalid JSON Patch format or metadata keys are not valid.
HTTP status code 404
Endpoint not found or querying user is not authorized for it.
HTTP status code 412
At least one of the preconditions specified in If-Match
or If-Unmodified-Since
headers failed.
Secured by oauth_2_0
Headers
- Authorization: optional (string)
Used to send a valid OAuth 2 access token. Example: "Authorization: Bearer 'access_token'" where 'access_token' must be replaced by a valid OAuth access token. This header is needed only if API authentication is enabled for the service.
get /endpoints/{endpointId}/metadata/{metadataKey}
Returns metadata value for the specified key.
- endpoint:read
EPR supports OAuth 2.0 for authenticating all API requests.
URI Parameters
- endpointId: required(string)
Identifier of the endpoint to operate on.
Example:
79c717d9-eedd-4f71-b9f8-86caf7e309e4
- metadataKey: required(string)
Metadata key must be a non-empty string containing Latin letters, digits, and underscores only.
Example:
OS
HTTP status code 200
Metadata value for the specified key.
Body
Media type: application/json
Type: any
Examples:
A JSON object.:
{
"kernel": "Linux",
"version": 5
}
A string value.:
"value1"
A boolean value.:
false
A JSON array value.:
[
1,
2.3,
4
]
A number value.:
2
HTTP status code 400
Bad request.
HTTP status code 404
Endpoint or metadata key not found or user is not authorized for the endpoint.
Body
Media type: application/json
Type: object
Properties
- message: required(string)
Detailed error description.
Examples:
Endpoint not found.:
{
"message": "No endpoint found."
}
Metadata key not found.:
{
"message": "No metadata key found."
}
Secured by oauth_2_0
Headers
- Authorization: optional (string)
Used to send a valid OAuth 2 access token. Example: "Authorization: Bearer 'access_token'" where 'access_token' must be replaced by a valid OAuth access token. This header is needed only if API authentication is enabled for the service.
put /endpoints/{endpointId}/metadata/{metadataKey}
Creates and updates single endpoint metadata field.
- endpoint:update
EPR supports OAuth 2.0 for authenticating all API requests.
URI Parameters
- endpointId: required(string)
Identifier of the endpoint to operate on.
Example:
79c717d9-eedd-4f71-b9f8-86caf7e309e4
- metadataKey: required(string)
Metadata key must be a non-empty string containing Latin letters, digits, and underscores only.
Example:
OS
Body
Media type: application/json
Type: any
Examples:
A JSON object.:
{
"kernel": "Linux",
"version": 5
}
A string value.:
"value1"
A boolean value.:
false
A JSON array value.:
[
1,
2.3,
4
]
A number value.:
2
HTTP status code 200
Single endpoint metadata key-value pair successfully updated.
Body
Media type: application/json
Type: any
Examples:
A JSON object.:
{
"kernel": "Linux",
"version": 5
}
A string value.:
"value1"
A boolean value.:
false
A JSON array value.:
[
1,
2.3,
4
]
A number value.:
2
HTTP status code 201
Single endpoint metadata key-value pair successfully created.
Headers
- Location: required(string)
Location of the newly created endpoint metadata key-value pair. The format is as follows: {schema}://{host}:{port}/api/{version}/endpoints/{endpointId}/metadata/{metadataKey}
Example:
http://example.com/api/v1/endpoints/79c717d9-eedd-4f71-b9f8-86caf7e309e4/metadata/OS
Body
Media type: application/json
Type: any
Examples:
A JSON object.:
{
"kernel": "Linux",
"version": 5
}
A string value.:
"value1"
A boolean value.:
false
A JSON array value.:
[
1,
2.3,
4
]
A number value.:
2
HTTP status code 400
Invalid JSON value or metadata key is not valid.
HTTP status code 404
Endpoint not found or querying user is not authorized for it.
Secured by oauth_2_0
Headers
- Authorization: optional (string)
Used to send a valid OAuth 2 access token. Example: "Authorization: Bearer 'access_token'" where 'access_token' must be replaced by a valid OAuth access token. This header is needed only if API authentication is enabled for the service.
delete /endpoints/{endpointId}/metadata/{metadataKey}
Deletes single endpoint metadata field for a specific endpoint.
- endpoint:update
EPR supports OAuth 2.0 for authenticating all API requests.
URI Parameters
- endpointId: required(string)
Identifier of the endpoint to operate on.
Example:
79c717d9-eedd-4f71-b9f8-86caf7e309e4
- metadataKey: required(string)
Metadata key must be a non-empty string containing Latin letters, digits, and underscores only.
Example:
OS
HTTP status code 204
Endpoint metadata key successfully deleted.
HTTP status code 400
Invalid metadata key.
HTTP status code 404
Endpoint or metadata key not found or user is not authorized for the endpoint.
Body
Media type: application/json
Type: object
Properties
- message: required(string)
Detailed error description.
Examples:
Endpoint not found.:
{
"message": "No endpoint found."
}
Metadata key not found.:
{
"message": "No metadata key found."
}
Secured by oauth_2_0
Headers
- Authorization: optional (string)
Used to send a valid OAuth 2 access token. Example: "Authorization: Bearer 'access_token'" where 'access_token' must be replaced by a valid OAuth access token. This header is needed only if API authentication is enabled for the service.
/endpoints/{endpointId}/metadata-keys get
get /endpoints/{endpointId}/metadata-keys
Returns all endpoint metadata keys for the specified endpoint.
- endpoint:read
EPR supports OAuth 2.0 for authenticating all API requests.
URI Parameters
- endpointId: required(string)
Identifier of the endpoint to operate on.
Example:
79c717d9-eedd-4f71-b9f8-86caf7e309e4
Headers
- If-None-Match: optional (string)
Makes the request conditional.
The server will send the requested metadata keys with `200` status only if current `ETag` value doesn't match the specified one.
Otherwise, `304 Not Modified` status will be returned.Example:
"33a64df551425fcc55e4d42a148795d9f25f89d4"
HTTP status code 200
Array that contains all metadata fields.
Headers
- ETag: required(string)
Represents the current metadata keys state.
The value can be used in `If-Match` and `If-None-Match` headers.
Example:
"33a64df551425fcc55e4d42a148795d9f25f89d4"
Body
Media type: application/json
Type: array of string
Example:
[
"OS",
"country",
"level"
]
HTTP status code 304
Resource(s) not modified.
HTTP status code 404
Endpoint not found or querying user is not authorized for it.
Secured by oauth_2_0
Headers
- Authorization: optional (string)
Used to send a valid OAuth 2 access token. Example: "Authorization: Bearer 'access_token'" where 'access_token' must be replaced by a valid OAuth access token. This header is needed only if API authentication is enabled for the service.
Filters
Operations on endpoint filters.
get /applications/{applicationName}/filters
Returns endpoint filters for a specific application.
- application:endpoint-filter:read
EPR supports OAuth 2.0 for authenticating all API requests.
URI Parameters
- applicationName: required(string)
Application name
Example:
smart_kettle
Headers
- If-None-Match: optional (string)
Makes the request conditional.
The server will send the requested endpoint's filters with `200` status only if current `ETag` value doesn't match the specified one.
Otherwise, `304 Not Modified` status will be returned.Example:
"33a64df551425fcc55e4d42a148795d9f25f89d4"
Query Parameters
- name: optional (string)
Filter name
- offset: optional (integer)
Start index that the server should return data from.
Example:
0
- limit: optional (integer - default: 1000)
Maximum number of items to return. To get all items limit must be 0.
Example:
100
HTTP status code 200
Endpoint filters retrieved successfully.
Headers
- ETag: required(string)
Represents the current filters state.
The value can be used in `If-Match` and `If-None-Match` headers.
Example:
"33a64df551425fcc55e4d42a148795d9f25f89d4"
Body
Media type: application/json
Type: object
Properties
- totalElements: required(integer)
Total number of elements available for retrieval. Current response may return only a part of all available elements.
- content: required(array of EndpointFilter)
Items: EndpointFilter
- id: required(string)
Endpoint filter ID.
- name: required(string)
Endpoint filter name, unique in scope of application.
- description: required(string)
Endpoint filter description.
- mongoQuery: required(object)
Mongo query used for filtering endpoins by application version and metadata keys.
- createdDate: required(datetime)
Endpoint filter creation timestamp in ISO 8601 format (UTC timezone).
- updatedDate: required(datetime)
Endpoint filter last update timstamp in ISO 8601 format (UTC timezone).
- matchedEndpointsCount: required(integer)
Amount of endpoints that matches the filter criteria.
- status: required(one of pending, active)
Endpoint filter status.
- `pending` - endpoint filter matching to endpoints is in progress
- `active` - endpoint filter matching to endpoints is finished
- id: required(string)
Example:
{
"totalElements": 2,
"content": [
{
"id": "79c717d9-eedd-4f71-b9f8-86caf7e309e4",
"createdDate": "2017-04-21T12:09:57.848Z",
"updatedDate": "2017-04-22T19:45:00.112Z",
"name": "app1-1_key1GreaterThanZero",
"description": "Some description.",
"mongoQuery": {
"$and": [
{
"application_version_name": "app1-1"
},
{
"metadata": {
"$elemMatch": {
"key": "key1",
"value": {
"$gt": 0
}
}
}
}
]
},
"status": "active"
},
{
"id": "1dc01725-b9d9-41a7-aa28-75a110b89d90",
"createdDate": "2017-05-03T05:17:59.789Z",
"updatedDate": "2017-06-17T07:18:14.431Z",
"description": "Some description.",
"mongoQuery": {
"metadata": {
"$elemMatch": {
"key": "key2",
"value": 2
}
}
},
"status": "pending"
}
]
}
HTTP status code 304
Resource(s) not modified.
HTTP status code 404
Resource not found.
Body
Media type: application/json
Type: object
Properties
- message: required(string)
Detailed error description.
Secured by oauth_2_0
Headers
- Authorization: optional (string)
Used to send a valid OAuth 2 access token. Example: "Authorization: Bearer 'access_token'" where 'access_token' must be replaced by a valid OAuth access token. This header is needed only if API authentication is enabled for the service.
post /applications/{applicationName}/filters
Creates an endpoint filter in specific application.
- application:endpoint-filter:create
EPR supports OAuth 2.0 for authenticating all API requests.
URI Parameters
- applicationName: required(string)
Application name
Example:
smart_kettle
Body
Media type: application/json
Type: object
Properties
- name: required(string)
Endpoint filter name, unique in scope of application.
- description: optional (string)
Endpoint filter description.
- mongoQuery: required(object)
Mongo query used for filtering endpoins by application version and metadata keys.
Example:
{
"name":"app1-1_key1GreaterThanZero",
"description": "Filters all endpoints with the 'key1' greater than '0'",
"mongoQuery":{
"$and":[
{
"application_version":"app1-1"
},
{
"metadata":{
"$elemMatch":{
"key":"key1",
"value":{
"$gt":0
}
}
}
}
]
}
}
HTTP status code 201
Endpoint filter successfully created.
Headers
- ETag: required(string)
Represents the current filter state.
The value can be used in `If-Match` and `If-None-Match` headers.
Example:
"33a64df551425fcc55e4d42a148795d9f25f89d4"
- Location: required(string)
URI in format
{schema}://{host}:{port}/api/v1/applications/{applicationName}/filters/{filterId}
Example:
http://example.com/api/v1/applications/smart-kettle/filters/79c717d9-eedd-4f71-b9f8-86caf7e309e4
HTTP status code 400
Invalid or missing query
Body
Media type: application/json
Type: object
Properties
- message: required(string)
Detailed error description.
HTTP status code 404
Resource not found.
Body
Media type: application/json
Type: object
Properties
- message: required(string)
Detailed error description.
HTTP status code 409
Endpoint filter with such name already exists in specified application.
Body
Media type: application/json
Type: object
Properties
- message: required(string)
Detailed error description.
Example:
{
"message": "Endpoint filter with such name already exists in specified application."
}
Secured by oauth_2_0
Headers
- Authorization: optional (string)
Used to send a valid OAuth 2 access token. Example: "Authorization: Bearer 'access_token'" where 'access_token' must be replaced by a valid OAuth access token. This header is needed only if API authentication is enabled for the service.
patch /applications/{applicationName}/filters/{filterId}
Updates an endpoint filter.
- application:endpoint-filter:update
EPR supports OAuth 2.0 for authenticating all API requests.
URI Parameters
- applicationName: required(string)
Application name
Example:
smart_kettle
- filterId: required(string)
Endpoint filter ID, unique in scope of application.
Example:
79c717d9-eedd-4f71-b9f8-86caf7e309e4
Headers
- If-Match: optional (string)
Makes the request conditional.
The server will execute operation only if current `ETag` value matches the specified one.
Otherwise, `412 Precondition Failed` status will be returned.Example:
"33a64df551425fcc55e4d42a148795d9f25f89d4"
Body
Media type: application/json
Type: object
Properties
- name: optional (string)
Endpoint filter name, unique in scope of application.
- description: optional (string)
Endpoint filter description.
- mongoQuery: optional (object)
Mongo query used for filtering endpoins by application version and metadata keys.
Example:
{
"name":"app1-1_key1GreaterThanZero",
"description": "Filters all endpoints with the 'key1' greater than '0'",
"mongoQuery":{
"$and":[
{
"application_version":"app1-1"
},
{
"metadata":{
"$elemMatch":{
"key":"key1",
"value":{
"$gt":0
}
}
}
}
]
}
}
HTTP status code 204
Endpoint filter successfully updated.
HTTP status code 400
Invalid request.
Body
Media type: application/json
Type: object
Properties
- message: required(string)
Detailed error description.
HTTP status code 404
Application or endpoint filter not found.
Body
Media type: application/json
Type: object
Properties
- message: required(string)
Detailed error description.
Examples:
Application is not found.:
{
"message": "Unknown application name!"
}
Endpoint filter not found.:
{
"message": "Endpoint filter not found."
}
HTTP status code 409
Endpoint filter with such name already exists in specified application.
Body
Media type: application/json
Type: object
Properties
- message: required(string)
Detailed error description.
Example:
{
"message": "Endpoint filter with such name already exists in specified application."
}
HTTP status code 412
Precondition specified in If-Match
header failed.
Secured by oauth_2_0
Headers
- Authorization: optional (string)
Used to send a valid OAuth 2 access token. Example: "Authorization: Bearer 'access_token'" where 'access_token' must be replaced by a valid OAuth access token. This header is needed only if API authentication is enabled for the service.
get /applications/{applicationName}/filters/{filterId}
Returns an endpoint filter.
- application:endpoint-filter:read
EPR supports OAuth 2.0 for authenticating all API requests.
URI Parameters
- applicationName: required(string)
Application name
Example:
smart_kettle
- filterId: required(string)
Endpoint filter ID, unique in scope of application.
Example:
79c717d9-eedd-4f71-b9f8-86caf7e309e4
Headers
- If-None-Match: optional (string)
Makes the request conditional.
The server will send the requested filter with `200` status only if current `ETag` value doesn't match the specified one.
Otherwise, `304 Not Modified` status will be returned.Example:
"33a64df551425fcc55e4d42a148795d9f25f89d4"
HTTP status code 200
Endpoint filter retrieved successfully.
Headers
- ETag: required(string)
Represents the current filter state.
The value can be used in `If-Match` and `If-None-Match` headers.
Example:
"33a64df551425fcc55e4d42a148795d9f25f89d4"
Body
Media type: application/json
Type: object
Properties
- id: required(string)
Endpoint filter ID.
- name: required(string)
Endpoint filter name, unique in scope of application.
- description: required(string)
Endpoint filter description.
- mongoQuery: required(object)
Mongo query used for filtering endpoins by application version and metadata keys.
- createdDate: required(datetime)
Endpoint filter creation timestamp in ISO 8601 format (UTC timezone).
- updatedDate: required(datetime)
Endpoint filter last update timstamp in ISO 8601 format (UTC timezone).
- matchedEndpointsCount: required(integer)
Amount of endpoints that matches the filter criteria.
- status: required(one of pending, active)
Endpoint filter status.
- `pending` - endpoint filter matching to endpoints is in progress
- `active` - endpoint filter matching to endpoints is finished
Example:
{
"id": "79c717d9-eedd-4f71-b9f8-86caf7e309e4",
"createdDate": "2017-04-21T12:09:57.848Z",
"updatedDate": "2017-04-22T19:45:00.112Z",
"name": "app1-1_key1GreaterThanZero",
"description": "Some description.",
"mongoQuery": {
"$and": [
{
"application_version_name": "app1-1"
},
{
"metadata": {
"$elemMatch": {
"key": "key1",
"value": {
"$gt": 0
}
}
}
}
]
},
"status": "active",
"matchedEndpointsCount":0
}
HTTP status code 304
Resource(s) not modified.
HTTP status code 404
Application or endpoint filter not found.
Body
Media type: application/json
Type: object
Properties
- message: required(string)
Detailed error description.
Examples:
Application is not found.:
{
"message": "Unknown application name!"
}
Endpoint filter not found.:
{
"message": "Endpoint filter not found."
}
Secured by oauth_2_0
Headers
- Authorization: optional (string)
Used to send a valid OAuth 2 access token. Example: "Authorization: Bearer 'access_token'" where 'access_token' must be replaced by a valid OAuth access token. This header is needed only if API authentication is enabled for the service.
delete /applications/{applicationName}/filters/{filterId}
Deletes an endpoint filter.
- application:endpoint-filter:delete
EPR supports OAuth 2.0 for authenticating all API requests.
URI Parameters
- applicationName: required(string)
Application name
Example:
smart_kettle
- filterId: required(string)
Endpoint filter ID, unique in scope of application.
Example:
79c717d9-eedd-4f71-b9f8-86caf7e309e4
Headers
- If-Match: optional (string)
Makes the request conditional.
The server will execute operation only if current `ETag` value matches the specified one.
Otherwise, `412 Precondition Failed` status will be returned.Example:
"33a64df551425fcc55e4d42a148795d9f25f89d4"
HTTP status code 204
Endpoint filter successfully deleted.
HTTP status code 404
Application or endpoint filter not found.
Body
Media type: application/json
Type: object
Properties
- message: required(string)
Detailed error description.
Examples:
Application is not found.:
{
"message": "Unknown application name!"
}
Endpoint filter not found.:
{
"message": "Endpoint filter not found."
}
HTTP status code 412
Precondition specified in If-Match
header failed.
Secured by oauth_2_0
Headers
- Authorization: optional (string)
Used to send a valid OAuth 2 access token. Example: "Authorization: Bearer 'access_token'" where 'access_token' must be replaced by a valid OAuth access token. This header is needed only if API authentication is enabled for the service.
Applications
Operations on applications.
/applications/{applicationName}/metadata-keys get
get /applications/{applicationName}/metadata-keys
Returns all endpoint metadata keys set for endpoints in a given application.
- application:endpoints-metadata-keys:read
EPR supports OAuth 2.0 for authenticating all API requests.
URI Parameters
- applicationName: required(string)
HTTP status code 200
Metadata keys is successfully retrieved.
Body
Media type: application/json
Type: object
Properties
- appName: required(object)
Application name.
- appVersionName: required(array of )
Application version name.
- appVersionName: required(array of )
Example:
{
"smart_kettle_v1": [
"fwVersion",
"serial",
"powerType"
],
"smart_kettle_v2": [
"sensingCapabilities",
"description"
]
}
HTTP status code 404
Given application doesn't exist or user is not authorized for it
Body
Media type: application/json
Type: object
Properties
- message: required(string)
Detailed error description.
Secured by oauth_2_0
Headers
- Authorization: optional (string)
Used to send a valid OAuth 2 access token. Example: "Authorization: Bearer 'access_token'" where 'access_token' must be replaced by a valid OAuth access token. This header is needed only if API authentication is enabled for the service.