Centralised Config API
Note
Version: 2.2.0
Base URL:https://next.itrslab.com/rest/centralised-config/v1/
The Centralised Gateway Configuration API provides a publicly accessible REST API for managing gateway configurations in Obcerv. This API allows you to create, retrieve, update, and delete gateway configurations and their associated resources.
Authentication Copied
All endpoints require Bearer token authentication using the Authorization: Bearer <token>
header.
Artifacts Management Copied
Get Gateway Artifacts Copied
GET /artifacts/gateways
Lists all stored gateway archive versions.
Parameter | Type | Required | Description |
---|---|---|---|
None | - | - | - |
Example Response:
{
"versions": ["GA5.7.1-230112", "GA6.1.0-230204"]
}
Delete Gateway Artifact Copied
DELETE /artifacts/gateways
Removes a stored gateway archive. This operation can only be performed by administrators.
Parameter | Type | Required | Description |
---|---|---|---|
version |
string | Yes | The gateway version to delete |
Example Request:
DELETE /artifacts/gateways?version=GA6.2.0-230101
Gateway Management Copied
Get Gateways Copied
GET /configuration/gateways
Returns a list of gateways filtered by a regular expression pattern applied to the gateway’s name. Only the latest version of each gateway is returned.
Parameter | Type | Required | Description |
---|---|---|---|
pattern |
string | Yes | Regular expression pattern to apply to the gateway name |
limit |
integer | No | Maximum number of results to return |
skip |
integer | No | Number of results to skip |
Example Request:
GET /configuration/gateways?pattern=.*&limit=100&skip=0
Example Response:
[
{
"id": 1,
"name": "EMEA/Infrastructure",
"version": "GA4.7.1",
"setupValidationId": 3
}
]
Create Gateway Copied
POST /configuration/gateways
Creates a named gateway and associates it with a single resource. The resource will be automatically created and named Gateway/<Gateway_Name>.
Request Body:
{
"name": "Gateway/EMEA",
"version": "GA4.5.1-220111"
}
Example Response:
{
"id": 10
}
Get Gateway Details Copied
GET /configuration/gateways/{gatewayId}
Gets a list of resources used by a specific gateway and metadata about the gateway itself.
Parameter | Type | Required | Description |
---|---|---|---|
gatewayId |
integer | Yes | The gateway ID |
ITRS-Doc-Version |
string (header) | No | A document version number |
Example Response:
{
"id": 1,
"name": "EMEA/Infrastructure",
"version": "GA4.7.1",
"resources": [
{
"id": 1,
"name": "Samplers/Infrastructure",
"version": "2",
"hash": "f0ef7bbda8e1812f72bd2f2571d4bebe",
"mainResource": false
}
],
"setupValidationId": 3
}
Delete Gateway Copied
DELETE /configuration/gateways/{gatewayId}
Deletes an existing gateway and its main resource. This operation can only be performed by administrators and is irreversible.
Parameter | Type | Required | Description |
---|---|---|---|
gatewayId |
integer | Yes | The gateway ID |
ITRS-Doc-Version |
string (header) | Yes | A document version number |
Get Gateway History Copied
GET /configuration/gateways/{gatewayId}/archives
Returns an ordered list of historic versions of a gateway matching the supplied ID.
Parameter | Type | Required | Description |
---|---|---|---|
gatewayId |
integer | Yes | The gateway ID |
limit |
integer | No | Maximum number of results to return |
skip |
integer | No | Number of results to skip |
Update Gateway Version Copied
PUT /configuration/gateways/{gatewayId}/version
Updates the geneos version of a gateway.
Parameter | Type | Required | Description |
---|---|---|---|
gatewayId |
integer | Yes | The gateway ID |
ITRS-Doc-Version |
string (header) | Yes | A document version number |
Request Body:
{
"version": "GA4.5.1-221010"
}
Resource Management Copied
Get Resources Copied
GET /configuration/gateways/resources
Returns a list of resources filtered by a regular expression pattern applied to the resource’s name. Only the latest version of each resource is returned.
Parameter | Type | Required | Description |
---|---|---|---|
pattern |
string | Yes | Regular expression pattern to match the resource name against |
skip |
integer | No | Number of results to skip |
limit |
integer | No | Maximum number of results to return |
Example Request:
GET /configuration/gateways/resources?pattern=^Sampler.*&limit=100&skip=0
Create Resource Copied
POST /configuration/gateways/resources
Creates a new named resource with the contents provided. A resource is an XML document that can be used as part of the setup of a Gateway.
Content-Type: multipart/form-data
Form Fields:
resource
: JSON metadata for the resourcecontents
: XML content or gzipped XML content
Example Resource Metadata:
{
"name": "Samplers",
"type": "GatewaySetup"
}
Example XML Content:
<gateway compatibility="1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://schema.itrsgroup.com/GA3.0.0-121008/gateway.xsd">
<samplers>
<sampler name="Another CPU">
<plugin>
<cpu/>
</plugin>
</sampler>
</samplers>
</gateway>
Get Resource Metadata Copied
GET /configuration/gateways/resources/{resourceId}
Returns the metadata associated with the requested resource.
Parameter | Type | Required | Description |
---|---|---|---|
resourceId |
integer | Yes | The resource ID |
ITRS-Doc-Version |
string (header) | No | The resource version to retrieve |
Example Response:
{
"id": 1,
"name": "Samplers/Infrastructure",
"hash": "f0ef7bbda8e1812f72bd2f2571d4bebe",
"mainResource": false,
"lastChangedBy": "John Doe",
"lastChangedOn": "2023-01-01T10:00:00Z",
"comment": "Add sampler",
"type": "GatewaySetup",
"usedBy": []
}
Get Resource Contents by ID Copied
GET /configuration/gateways/resources/{resourceId}/contents
Requests the contents of a setup resource as an XML document.
Parameter | Type | Required | Description |
---|---|---|---|
resourceId |
integer | Yes | The resource ID |
ITRS-Doc-Version |
string (header) | No | A document version number |
Response: XML content
Get Resource Contents by Name Copied
GET /configuration/gateways/resources/contents
Returns the XML contents of the resource that matches the resource name provided.
Parameter | Type | Required | Description |
---|---|---|---|
name |
string | Yes | Resource name |
Example Request:
GET /configuration/gateways/resources/contents?name=Samplers.xml
Response: XML content
Delete Resource Copied
DELETE /configuration/gateways/resources/{resourceId}
Deletes a resource and all its history. This operation can only be performed by administrators and is irreversible.
Parameter | Type | Required | Description |
---|---|---|---|
resourceId |
integer | Yes | The resource ID |
ITRS-Doc-Version |
string (header) | Yes | The latest version of the resource |
Get Resource History Copied
GET /configuration/gateways/resources/{resourceId}/archives
Returns an ordered list of historic versions of the resource identified by the supplied resource ID.
Parameter | Type | Required | Description |
---|---|---|---|
resourceId |
integer | Yes | The resource ID |
limit |
integer | No | Maximum number of results to return |
skip |
integer | No | Number of results to skip |
Resource Locking Copied
Create Resource Locks Copied
POST /configuration/gateways/resources/locks
Locks one or more resources. Locking a resource ensures that no users other than the owner of the lock can modify the resource.
Request Body:
{
"resources": [
{
"id": 1,
"hash": "11d539978dea4b80e27dc6cc01ab06b0"
}
],
"force": true
}
Get Resource Locks Copied
GET /configuration/gateways/resources/locks
Returns a list of resource lock information.
Parameter | Type | Required | Description |
---|---|---|---|
resourceId |
array[integer] | Yes | Resource IDs to get lock information for |
Create Single Resource Lock Copied
POST /configuration/gateways/resources/{resourceId}/locks
Locks a resource. Locking a resource ensures that no users other than the owner of the lock can modify the resource.
Parameter | Type | Required | Description |
---|---|---|---|
resourceId |
integer | Yes | The resource ID |
hash |
string | Yes | The MD5 hash of the resource contents |
force |
boolean | No | Create the lock and override any existing lock (admin only) |
Example Response:
{
"id": 345,
"createdOn": "2023-01-01T10:00:00Z",
"expiresOn": "2023-01-01T10:30:00Z",
"createdBy": {
"username": "jbloggs",
"displayName": "Joe Bloggs"
}
}
Get Resource Lock Copied
GET /configuration/gateways/resources/{resourceId}/locks
Returns the lock information for the resource with the supplied id.
Parameter | Type | Required | Description |
---|---|---|---|
resourceId |
integer | Yes | The resource ID |
Delete Resource Lock Copied
DELETE /configuration/gateways/resources/{resourceId}/locks
Unlocks a resource. Only the owner of the lock and administrators can unlock a resource.
Parameter | Type | Required | Description |
---|---|---|---|
resourceId |
integer | Yes | The resource ID |
force |
boolean | No | Remove the lock and override any existing lock (admin only) |
Resource Permissions Copied
Get Resource Permissions Copied
GET /configuration/gateways/resources/{resourceId}/permissions
Retrieves the permissions for a gateway setup resource.
Parameter | Type | Required | Description |
---|---|---|---|
resourceId |
integer | Yes | The resource ID |
Example Response:
{
"read": {
"roles": ["admin", "engineering", "operator"]
},
"write": {
"roles": ["admin", "engineering"]
}
}
Update Resource Permissions Copied
PUT /configuration/gateways/resources/{resourceId}/permissions
Sets permissions on a gateway setup resource. This operation can only be performed by administrators.
Parameter | Type | Required | Description |
---|---|---|---|
resourceId |
integer | Yes | The resource ID |
ITRS-Doc-Version |
string (header) | No | A document version number |
Request Body:
{
"read": {
"roles": ["admin", "engineering", "operator"]
},
"write": {
"roles": ["admin", "engineering"]
}
}
Validation Management Copied
Validate Gateway Setup Copied
POST /configuration/gateways/{gatewayId}/validations
Validates changes to the resources of a gateway stored in Obcerv. The resources included in the request should be all the resources used by the gateway.
Parameter | Type | Required | Description |
---|---|---|---|
gatewayId |
integer | Yes | The gateway id |
Request Body (JSON):
{
"resources": [
{
"id": 1,
"hash": "11d539978dea4b80e27dc6cc01ab06b0"
}
]
}
Request Body (Multipart for XML contents):
gatewaychanges
: JSON with resource metadata{resourceId}
: XML content for each resource
Example Response:
{
"id": 10
}
Apply Gateway Setup Changes Copied
POST /configuration/gateways/{gatewayId}/changes
Applies changes to the resources of a gateway stored in Obcerv. The resources that are passed should be all the resources used by the gateway.
Parameter | Type | Required | Description |
---|---|---|---|
gatewayId |
integer | Yes | The gateway id |
Request Body:
{
"source": "Gateway Setup Editor",
"comment": "Added new CPU sampler",
"resources": [
{
"id": 1,
"hash": "11d539978dea4b80e27dc6cc01ab06b0"
}
]
}
Get Validation Status Copied
GET /configuration/gateways/validations/{validationId}
Returns information regarding the status of a pending gateway setup validation.
Parameter | Type | Required | Description |
---|---|---|---|
validationId |
integer | Yes | The validation id |
Example Response:
{
"id": 10,
"status": "DONE",
"startTime": "2019-11-12T12:04:10Z",
"endTime": "2019-11-12T12:08:10Z",
"gatewaysValidated": 10,
"gatewaysPending": 1,
"abortMessage": "Aborted by user John Doe (jdoe)"
}
Get Validation Messages Copied
GET /configuration/gateways/validations/{validationId}/messages
Returns validation messages generated by the gateways that have been validated as part of a setup validation request.
Parameter | Type | Required | Description |
---|---|---|---|
validationId |
integer | Yes | The validation id |
Example Response:
{
"validationMessages": [
{
"module": "SetupManager",
"path": "/gateway/operatingEnvironment",
"description": "Invalid reference to probe 'P1'",
"gateway": {
"id": 1,
"name": "EMEA-Prod"
},
"resource": {
"name": "Gateway/EMEA-Prod",
"isMain": true
},
"severity": "Error"
}
]
}
Abort Validation Copied
DELETE /configuration/gateways/validations/{validationId}
Aborts an ongoing gateway setup validation.
Parameter | Type | Required | Description |
---|---|---|---|
validationId |
integer | Yes | The validation id |
Data Schemas Copied
ApiError Copied
Standard error response format.
{
"title": "Bad Request",
"body": "Parameter 'name' must be set",
"timestamp": "2022-10-1T10:01:10Z"
}
CurrentResource Copied
Current resource with detailed metadata.
{
"id": 1,
"name": "Samplers/Infrastructure",
"hash": "f0ef7bbda8e1812f72bd2f2571d4bebe",
"mainResource": false,
"lastChangedBy": "John Doe",
"lastChangedOn": "2023-01-01T10:00:00Z",
"comment": "Add sampler",
"type": "GatewaySetup",
"usedBy": [1, 2, 3]
}
Gateway Copied
Represents a gateway configuration.
{
"id": 1,
"name": "EMEA/Infrastructure",
"version": "GA4.7.1",
"setupValidationId": 3
}
GatewayArtifactVersions Copied
List of available gateway artifact versions.
{
"versions": ["GA5.7.1-230112", "GA6.1.0-230204"]
}
GatewayChangesQuery Copied
Request body for applying gateway setup changes.
{
"source": "Gateway Setup Editor",
"comment": "Added new CPU sampler",
"resources": [
{
"id": 1,
"hash": "11d539978dea4b80e27dc6cc01ab06b0"
}
]
}
GatewayCreationQuery Copied
Request body for creating a new gateway.
{
"name": "Gateway/EMEA",
"version": "GA4.5.1-220111"
}
GatewayHistory Copied
Historical version of a gateway.
{
"id": 1,
"name": "EMEA/Infrastructure",
"version": "GA4.7.1",
"resources": [
{
"id": 1,
"name": "Samplers/Infrastructure",
"version": "2",
"hash": "f0ef7bbda8e1812f72bd2f2571d4bebe",
"mainResource": false
}
],
"setupValidationId": 3,
"docVersion": "5"
}
GatewayValidationQuery Copied
Request body for validating gateway setup.
{
"resources": [
{
"id": 1,
"hash": "11d539978dea4b80e27dc6cc01ab06b0"
}
]
}
GatewayWithResources Copied
Gateway with its associated resources.
{
"id": 1,
"name": "EMEA/Infrastructure",
"version": "GA4.7.1",
"resources": [
{
"id": 1,
"name": "Samplers/Infrastructure",
"version": "2",
"hash": "f0ef7bbda8e1812f72bd2f2571d4bebe",
"mainResource": false
}
],
"setupValidationId": 3
}
IdEntry Copied
Generic ID response.
{
"id": 10
}
LockOwner Copied
Information about the owner of a resource lock.
{
"username": "jbloggs",
"displayName": "Joe Bloggs"
}
LocksCreationQuery Copied
Request body for creating multiple resource locks.
{
"resources": [
{
"id": 1,
"hash": "11d539978dea4b80e27dc6cc01ab06b0"
}
],
"force": true
}
Permission Copied
Permission definition with roles.
{
"roles": ["admin", "engineering", "operator"]
}
Resource Copied
Represents a gateway resource.
{
"id": 1,
"name": "Samplers/Infrastructure",
"version": "2",
"hash": "f0ef7bbda8e1812f72bd2f2571d4bebe",
"mainResource": false,
"lastChangedBy": "John Doe",
"lastChangedOn": "2023-01-01T10:00:00Z",
"comment": "Add sampler",
"type": "GatewaySetup",
"usedBy": []
}
ResourceHistory Copied
Historical version of a resource.
{
"lastChangedBy": "John Doe",
"lastChangedOn": "2023-01-01T10:00:00Z",
"hash": "f0ef7bbda8e1812f72bd2f2571d4bebe",
"version": "1001",
"comment": "Add Disk sampler"
}
ResourceInfo Copied
Basic resource information with ID and hash.
{
"id": 345,
"hash": "67fa6095466e46b70e2c9d50e82c626a"
}
ResourceLockInfo Copied
Information about a resource lock.
{
"id": 345,
"createdOn": "2023-01-01T10:00:00Z",
"expiresOn": "2023-01-01T10:30:00Z",
"createdBy": {
"username": "jbloggs",
"displayName": "Joe Bloggs"
}
}
ResourcePermissions Copied
Resource permissions configuration.
{
"read": {
"roles": ["admin", "engineering", "operator"]
},
"write": {
"roles": ["admin", "engineering"]
}
}
ValidatedGateway Copied
Gateway information in validation context.
{
"id": 1,
"name": "EMEA-Prod"
}
ValidatedResource Copied
Resource information in validation context.
{
"name": "Gateway/EMEA-Prod",
"isMain": true
}
ValidationMessage Copied
A validation message from gateway validation.
{
"module": "SetupManager",
"path": "/gateway/operatingEnvironment",
"description": "Invalid reference to probe 'P1'",
"gateway": {
"id": 1,
"name": "EMEA-Prod"
},
"resource": {
"name": "Gateway/EMEA-Prod",
"isMain": true
},
"severity": "Error"
}
ValidationMessages Copied
Collection of validation messages.
{
"validationMessages": [
{
"module": "SetupManager",
"path": "/gateway/operatingEnvironment",
"description": "Invalid reference to probe 'P1'",
"gateway": {
"id": 1,
"name": "EMEA-Prod"
},
"resource": {
"name": "Gateway/EMEA-Prod",
"isMain": true
},
"severity": "Error"
}
]
}
ValidationStatus Copied
Status information for a validation request.
{
"id": 10,
"status": "DONE",
"startTime": "2019-11-12T12:04:10Z",
"endTime": "2019-11-12T12:08:10Z",
"gatewaysValidated": 10,
"gatewaysPending": 1,
"abortMessage": "Aborted by user John Doe (jdoe)"
}
VersionUpdateQuery Copied
Request body for updating gateway version.
{
"version": "GA4.5.1-221010"
}