mirror of https://github.com/Icinga/icinga2.git
Docs: Add TOC to REST API chapter
This commit is contained in:
parent
87711b72e0
commit
22070798c5
|
@ -1,4 +1,20 @@
|
||||||
# Icinga 2 API <a id="icinga2-api"></a>
|
# REST API <a id="icinga2-api"></a>
|
||||||
|
|
||||||
|
* [Setup](12-icinga2-api.md#icinga2-api-setup)
|
||||||
|
* [Introduction](12-icinga2-api.md#icinga2-api-introduction)
|
||||||
|
* Endpoints
|
||||||
|
* [Config Objects](12-icinga2-api.md#icinga2-api-config-objects)
|
||||||
|
* [Actions](12-icinga2-api.md#icinga2-api-actions)
|
||||||
|
* [Event Streams](12-icinga2-api.md#icinga2-api-event-streams)
|
||||||
|
* [Status and Statistics](12-icinga2-api.md#icinga2-api-status)
|
||||||
|
* [Config Management](12-icinga2-api.md#icinga2-api-config-management)
|
||||||
|
* [Types](12-icinga2-api.md#icinga2-api-types)
|
||||||
|
* [Templates](12-icinga2-api.md#icinga2-api-config-templates)
|
||||||
|
* [Variables](12-icinga2-api.md#icinga2-api-variables)
|
||||||
|
* [Debug Console](12-icinga2-api.md#icinga2-api-console)
|
||||||
|
* [API Clients](12-icinga2-api.md#icinga2-api-clients)
|
||||||
|
* [Programmatic Examples](12-icinga2-api.md#icinga2-api-clients-programmatic-examples)
|
||||||
|
|
||||||
|
|
||||||
## Setting up the API <a id="icinga2-api-setup"></a>
|
## Setting up the API <a id="icinga2-api-setup"></a>
|
||||||
|
|
||||||
|
@ -922,87 +938,6 @@ $ curl -k -s -u root:icinga -H 'Accept: application/json' \
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## Config Templates <a id="icinga2-api-config-templates"></a>
|
|
||||||
|
|
||||||
Provides methods to manage configuration templates:
|
|
||||||
|
|
||||||
* [querying templates](12-icinga2-api.md#icinga2-api-config-templates-query)
|
|
||||||
|
|
||||||
Creation, modification and deletion of templates at runtime is not supported.
|
|
||||||
|
|
||||||
### Querying Templates <a id="icinga2-api-config-templates-query"></a>
|
|
||||||
|
|
||||||
You can request information about configuration templates by sending
|
|
||||||
a `GET` query to the `/v1/templates/<type>` URL endpoint. `<type` has
|
|
||||||
to be replaced with the plural name of the object type you are interested
|
|
||||||
in:
|
|
||||||
|
|
||||||
```
|
|
||||||
$ curl -k -s -u root:icinga 'https://localhost:5665/v1/templates/hosts'
|
|
||||||
```
|
|
||||||
|
|
||||||
A list of all available configuration types is available in the
|
|
||||||
[object types](09-object-types.md#object-types) chapter.
|
|
||||||
|
|
||||||
A [filter](12-icinga2-api.md#icinga2-api-filters) may be provided for this query type. The
|
|
||||||
template object can be accessed in the filter using the `tmpl` variable. In this
|
|
||||||
example the [match function](18-library-reference.md#global-functions-match) is used to
|
|
||||||
check a wildcard string pattern against `tmpl.name`.
|
|
||||||
The `filter` attribute is passed inside the request body thus requiring to use [X-HTTP-Method-Override](12-icinga2-api.md#icinga2-api-requests-method-override)
|
|
||||||
here.
|
|
||||||
|
|
||||||
```
|
|
||||||
$ curl -k -s -u root:icinga -H 'Accept: application/json' \
|
|
||||||
-H 'X-HTTP-Method-Override: GET' -X POST \
|
|
||||||
'https://localhost:5661/v1/templates/hosts' \
|
|
||||||
-d '{ "filter": "match(\"g*\", tmpl.name)" }'
|
|
||||||
```
|
|
||||||
|
|
||||||
Instead of using a filter you can optionally specify the template name in the
|
|
||||||
URL path when querying a single object:
|
|
||||||
|
|
||||||
```
|
|
||||||
$ curl -k -s -u root:icinga 'https://localhost:5665/v1/templates/hosts/generic-host'
|
|
||||||
```
|
|
||||||
|
|
||||||
The result set contains the type, name as well as the location of the template.
|
|
||||||
|
|
||||||
## Variables <a id="icinga2-api-variables"></a>
|
|
||||||
|
|
||||||
Provides methods to manage global variables:
|
|
||||||
|
|
||||||
* [querying variables](12-icinga2-api.md#icinga2-api-variables-query)
|
|
||||||
|
|
||||||
### Querying Variables <a id="icinga2-api-variables-query"></a>
|
|
||||||
|
|
||||||
You can request information about global variables by sending
|
|
||||||
a `GET` query to the `/v1/variables/` URL endpoint:
|
|
||||||
|
|
||||||
```
|
|
||||||
$ curl -k -s -u root:icinga 'https://localhost:5665/v1/variables'
|
|
||||||
```
|
|
||||||
|
|
||||||
A [filter](12-icinga2-api.md#icinga2-api-filters) may be provided for this query type. The
|
|
||||||
variable information object can be accessed in the filter using the `variable` variable.
|
|
||||||
The `filter` attribute is passed inside the request body thus requiring to use [X-HTTP-Method-Override](12-icinga2-api.md#icinga2-api-requests-method-override)
|
|
||||||
here.
|
|
||||||
|
|
||||||
```
|
|
||||||
$ curl -k -s -u root:icinga -H 'Accept: application/json' \
|
|
||||||
-H 'X-HTTP-Method-Override: GET' -X POST \
|
|
||||||
'https://localhost:5661/v1/variables' \
|
|
||||||
-d '{ "filter": "variable.type in [ \"String\", \"Number\" ]" }'
|
|
||||||
```
|
|
||||||
|
|
||||||
Instead of using a filter you can optionally specify the variable name in the
|
|
||||||
URL path when querying a single variable:
|
|
||||||
|
|
||||||
```
|
|
||||||
$ curl -k -s -u root:icinga 'https://localhost:5665/v1/variables/PrefixDir'
|
|
||||||
```
|
|
||||||
|
|
||||||
The result set contains the type, name and value of the global variable.
|
|
||||||
|
|
||||||
## Actions <a id="icinga2-api-actions"></a>
|
## Actions <a id="icinga2-api-actions"></a>
|
||||||
|
|
||||||
There are several actions available for Icinga 2 provided by the `/v1/actions`
|
There are several actions available for Icinga 2 provided by the `/v1/actions`
|
||||||
|
@ -2174,6 +2109,87 @@ $ curl -k -s -u root:icinga 'https://localhost:5665/v1/types/Object?pretty=1'
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Config Templates <a id="icinga2-api-config-templates"></a>
|
||||||
|
|
||||||
|
Provides methods to manage configuration templates:
|
||||||
|
|
||||||
|
* [querying templates](12-icinga2-api.md#icinga2-api-config-templates-query)
|
||||||
|
|
||||||
|
Creation, modification and deletion of templates at runtime is not supported.
|
||||||
|
|
||||||
|
### Querying Templates <a id="icinga2-api-config-templates-query"></a>
|
||||||
|
|
||||||
|
You can request information about configuration templates by sending
|
||||||
|
a `GET` query to the `/v1/templates/<type>` URL endpoint. `<type` has
|
||||||
|
to be replaced with the plural name of the object type you are interested
|
||||||
|
in:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ curl -k -s -u root:icinga 'https://localhost:5665/v1/templates/hosts'
|
||||||
|
```
|
||||||
|
|
||||||
|
A list of all available configuration types is available in the
|
||||||
|
[object types](09-object-types.md#object-types) chapter.
|
||||||
|
|
||||||
|
A [filter](12-icinga2-api.md#icinga2-api-filters) may be provided for this query type. The
|
||||||
|
template object can be accessed in the filter using the `tmpl` variable. In this
|
||||||
|
example the [match function](18-library-reference.md#global-functions-match) is used to
|
||||||
|
check a wildcard string pattern against `tmpl.name`.
|
||||||
|
The `filter` attribute is passed inside the request body thus requiring to use [X-HTTP-Method-Override](12-icinga2-api.md#icinga2-api-requests-method-override)
|
||||||
|
here.
|
||||||
|
|
||||||
|
```
|
||||||
|
$ curl -k -s -u root:icinga -H 'Accept: application/json' \
|
||||||
|
-H 'X-HTTP-Method-Override: GET' -X POST \
|
||||||
|
'https://localhost:5661/v1/templates/hosts' \
|
||||||
|
-d '{ "filter": "match(\"g*\", tmpl.name)" }'
|
||||||
|
```
|
||||||
|
|
||||||
|
Instead of using a filter you can optionally specify the template name in the
|
||||||
|
URL path when querying a single object:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ curl -k -s -u root:icinga 'https://localhost:5665/v1/templates/hosts/generic-host'
|
||||||
|
```
|
||||||
|
|
||||||
|
The result set contains the type, name as well as the location of the template.
|
||||||
|
|
||||||
|
## Variables <a id="icinga2-api-variables"></a>
|
||||||
|
|
||||||
|
Provides methods to manage global variables:
|
||||||
|
|
||||||
|
* [querying variables](12-icinga2-api.md#icinga2-api-variables-query)
|
||||||
|
|
||||||
|
### Querying Variables <a id="icinga2-api-variables-query"></a>
|
||||||
|
|
||||||
|
You can request information about global variables by sending
|
||||||
|
a `GET` query to the `/v1/variables/` URL endpoint:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ curl -k -s -u root:icinga 'https://localhost:5665/v1/variables'
|
||||||
|
```
|
||||||
|
|
||||||
|
A [filter](12-icinga2-api.md#icinga2-api-filters) may be provided for this query type. The
|
||||||
|
variable information object can be accessed in the filter using the `variable` variable.
|
||||||
|
The `filter` attribute is passed inside the request body thus requiring to use [X-HTTP-Method-Override](12-icinga2-api.md#icinga2-api-requests-method-override)
|
||||||
|
here.
|
||||||
|
|
||||||
|
```
|
||||||
|
$ curl -k -s -u root:icinga -H 'Accept: application/json' \
|
||||||
|
-H 'X-HTTP-Method-Override: GET' -X POST \
|
||||||
|
'https://localhost:5661/v1/variables' \
|
||||||
|
-d '{ "filter": "variable.type in [ \"String\", \"Number\" ]" }'
|
||||||
|
```
|
||||||
|
|
||||||
|
Instead of using a filter you can optionally specify the variable name in the
|
||||||
|
URL path when querying a single variable:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ curl -k -s -u root:icinga 'https://localhost:5665/v1/variables/PrefixDir'
|
||||||
|
```
|
||||||
|
|
||||||
|
The result set contains the type, name and value of the global variable.
|
||||||
|
|
||||||
## Debug Console <a id="icinga2-api-console"></a>
|
## Debug Console <a id="icinga2-api-console"></a>
|
||||||
|
|
||||||
You can inspect variables and execute other expressions by sending a `POST` request to the URL endpoint `/v1/console/execute-script`.
|
You can inspect variables and execute other expressions by sending a `POST` request to the URL endpoint `/v1/console/execute-script`.
|
||||||
|
@ -2353,6 +2369,7 @@ The following languages are covered:
|
||||||
* [PHP](12-icinga2-api.md#icinga2-api-clients-programmatic-examples-php)
|
* [PHP](12-icinga2-api.md#icinga2-api-clients-programmatic-examples-php)
|
||||||
* [Perl](12-icinga2-api.md#icinga2-api-clients-programmatic-examples-perl)
|
* [Perl](12-icinga2-api.md#icinga2-api-clients-programmatic-examples-perl)
|
||||||
* [Golang](12-icinga2-api.md#icinga2-api-clients-programmatic-examples-golang)
|
* [Golang](12-icinga2-api.md#icinga2-api-clients-programmatic-examples-golang)
|
||||||
|
* [Powershell](12-icinga2-api.md#icinga2-api-clients-programmatic-examples-powershell)
|
||||||
|
|
||||||
The [request method](icinga2-api-requests) is `POST` using [X-HTTP-Method-Override: GET](12-icinga2-api.md#icinga2-api-requests-method-override)
|
The [request method](icinga2-api-requests) is `POST` using [X-HTTP-Method-Override: GET](12-icinga2-api.md#icinga2-api-requests-method-override)
|
||||||
which allows you to send a JSON request body. The examples request specific service
|
which allows you to send a JSON request body. The examples request specific service
|
||||||
|
|
Loading…
Reference in New Issue