TRY ME

Try Valo for free

We want to show you something amazing.

We'll send you a link to download a fully functional Valo copy to play with.



Great! Check your email and enjoy Valo



Apologies, we seem to be having a problem processing your input, please try again

Domain API

See Domains documentation for an overview of domains.

Get the domain collections

GET /domain/:tenant

Gets all domain collections

Example request:

GET /domain/demo HTTP/1.1

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "instances": [
    "infrastructure",
    "trading"
  ]
}

Put a domain

PUT /domain/:tenant/:collection/:name

Registers a new domain definition or updates an existing one.

Optional userData can be specified. This is a free-form field that will be stored alongside the definition.

Updates should include a version header.

Example request:

PUT /domain/demo/infrastructure/windows_servers HTTP/1.1
Content-Type: application/json
Valo-Config-Version: Y2BgYOALzsxLz0kNS8zJ98tPSWWAAEYAvp3ZUxs=

{
  "contributorFilters": [
    {"contributor": "/contributors/demo/probes", "query": "os.name == 'windows'"}
  ],
  "userData": {
    "title": "My Test Domain",
    "description": "I enjoy testing domains so I made a domain using the Domain API"
  }
}

Example response:

HTTP/1.1 200 OK
Content-Type: application/json
Valo-Config-Version: Y2BgYOALzsxLz0kNS8zJ98tPSWWAAEYAvp3ZUxs=

{
  "contributorFilters": [
    {"contributor": "/contributors/demo/probes", "query": "os.name == 'windows'"}
  ],
  "userData": {
    "title": "My Test Domain",
    "description": "I enjoy testing domains so I made a domain using the Domain API"
  }
}

Get a domain

GET /domain/:tenant/:collection/:name

Gets an existing domain definition.

Example request:

GET /domain/demo/infrastructure/windows_servers HTTP/1.1

Example response:

HTTP/1.1 200 OK
Content-Type: application/json
Valo-Config-Version: Y2BgYOALzsxLz0kNS8zJ98tPSWWAAEYAvp3ZUxs=

{
  "contributor": "/contributors/demo/probes",
  "query": "os.name == 'windows'"
}

Get all the domains

GET /domain/:tenant/:collection

Gets all domain definitions

Example request:

GET /domain/demo/infrastructure HTTP/1.1

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "instances": [
    "windows_servers",
    "database_servers"
  ]
}

Delete a domain

DELETE /domain/:tenant/:collection/:name

Deletes an existing domain definition.

Example request:

DELETE /domain/demo/infrastructure/windows_servers HTTP/1.1

Example response:

HTTP/1.1 200 OK
Valo-Config-Version: Y2BgYOALzsxLz0kNS8zJ98tPSWWAAEYAvp3ZUxs=

Get the domain contributors

GET /domain/:tenant/:collection/:name/contributors

Gets the contributors currently included in the domain.

Example request:

GET /domain/demo/infrastructure/windows_servers/contributors HTTP/1.1

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "contributors": [
    {
      "type": "/contributors/demo/probes",
      "items": [
        { "id": "017f254d-9a09-4bfa-b13a-d19d44ced8b3"},
        { "id": "83fdb71b-de11-436c-aa74-11011625ab19"},
        { "id": "83fdb71b-de11-436c-aa74-11011625ab19"}
      ]
    }
  ]
}

Get the streams

GET /domain/:tenant/:collection/:name/streams

Gets the streams that have been published to by the contributors included in the domain.

Example request:

GET /domain/demo/infrastructure/windows_servers/contributors HTTP/1.1

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

{
    "streams": [
        "/streams/demo/infrastructure/cpu",
        "/streams/demo/infrastructure/hardware",
        "/streams/demo/infrastructure/processes"
    ]
}