# What this PR does This PR fixes templates behaviour for public and private api. It fix "reset to default" for templates from messaging backends and some minor bugs. Also added acknowledge signal and source link templates ## Checklist - [x] Tests updated - [x] Documentation added - [x] `CHANGELOG.md` updated
314 lines
6.4 KiB
Markdown
314 lines
6.4 KiB
Markdown
---
|
|
aliases:
|
|
- /docs/oncall/latest/oncall-api-reference/integrations/
|
|
canonical: https://grafana.com/docs/oncall/latest/oncall-api-reference/integrations/
|
|
title: Integrations HTTP API
|
|
weight: 500
|
|
---
|
|
|
|
# Create an integration
|
|
|
|
```shell
|
|
curl "{{API_URL}}/api/v1/integrations/" \
|
|
--request POST \
|
|
--header "Authorization: meowmeowmeow" \
|
|
--header "Content-Type: application/json" \
|
|
--data '{
|
|
"type":"grafana"
|
|
}'
|
|
```
|
|
|
|
The above command returns JSON structured in the following way:
|
|
|
|
```json
|
|
{
|
|
"id": "CFRPV98RPR1U8",
|
|
"name": "Grafana :blush:",
|
|
"team_id": null,
|
|
"link": "{{API_URL}}/integrations/v1/grafana/mReAoNwDm0eMwKo1mTeTwYo/",
|
|
"type": "grafana",
|
|
"default_route": {
|
|
"id": "RVBE4RKQSCGJ2",
|
|
"escalation_chain_id": "F5JU6KJET33FE",
|
|
"slack": {
|
|
"channel_id": "CH23212D"
|
|
}
|
|
},
|
|
"templates": {
|
|
"grouping_key": null,
|
|
"resolve_signal": null,
|
|
"acknowledge_signal": null,
|
|
"source_link": null,
|
|
"slack": {
|
|
"title": null,
|
|
"message": null,
|
|
"image_url": null
|
|
},
|
|
"web": {
|
|
"title": null,
|
|
"message": null,
|
|
"image_url": null
|
|
},
|
|
"sms": {
|
|
"title": null
|
|
},
|
|
"phone_call": {
|
|
"title": null
|
|
},
|
|
"telegram": {
|
|
"title": null,
|
|
"message": null,
|
|
"image_url": null
|
|
},
|
|
"email": {
|
|
"title": null,
|
|
"message": null
|
|
},
|
|
"msteams": {
|
|
"title": null,
|
|
"message": null,
|
|
"image_url": null
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
Integrations are sources of alerts and alert groups for Grafana OnCall.
|
|
For example, to learn how to integrate Grafana OnCall with Alertmanager see
|
|
[Alertmanager]({{< relref "../integrations/available-integrations/configure-alertmanager/" >}}).
|
|
|
|
**HTTP request**
|
|
|
|
`POST {{API_URL}}/api/v1/integrations/`
|
|
|
|
# Get integration
|
|
|
|
```shell
|
|
curl "{{API_URL}}/api/v1/integrations/CFRPV98RPR1U8/" \
|
|
--request GET \
|
|
--header "Authorization: meowmeowmeow" \
|
|
--header "Content-Type: application/json"
|
|
```
|
|
|
|
The above command returns JSON structured in the following way:
|
|
|
|
```json
|
|
{
|
|
"id": "CFRPV98RPR1U8",
|
|
"name": "Grafana :blush:",
|
|
"team_id": null,
|
|
"link": "{{API_URL}}/integrations/v1/grafana/mReAoNwDm0eMwKo1mTeTwYo/",
|
|
"type": "grafana",
|
|
"default_route": {
|
|
"id": "RVBE4RKQSCGJ2",
|
|
"escalation_chain_id": "F5JU6KJET33FE",
|
|
"slack": {
|
|
"channel_id": "CH23212D"
|
|
}
|
|
},
|
|
"templates": {
|
|
"grouping_key": null,
|
|
"resolve_signal": null,
|
|
"acknowledge_signal": null,
|
|
"source_link": null,
|
|
"slack": {
|
|
"title": null,
|
|
"message": null,
|
|
"image_url": null
|
|
},
|
|
"web": {
|
|
"title": null,
|
|
"message": null,
|
|
"image_url": null
|
|
},
|
|
"sms": {
|
|
"title": null
|
|
},
|
|
"phone_call": {
|
|
"title": null
|
|
},
|
|
"telegram": {
|
|
"title": null,
|
|
"message": null,
|
|
"image_url": null
|
|
},
|
|
"email": {
|
|
"title": null,
|
|
"message": null
|
|
},
|
|
"msteams": {
|
|
"title": null,
|
|
"message": null,
|
|
"image_url": null
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
This endpoint retrieves an integration. Integrations are sources of alerts and alert groups for Grafana OnCall.
|
|
|
|
**HTTP request**
|
|
|
|
`GET {{API_URL}}/api/v1/integrations/<INTEGRATION_ID>/`
|
|
|
|
# List integrations
|
|
|
|
```shell
|
|
curl "{{API_URL}}/api/v1/integrations/" \
|
|
--request GET \
|
|
--header "Authorization: meowmeowmeow" \
|
|
--header "Content-Type: application/json"
|
|
```
|
|
|
|
The above command returns JSON structured in the following way:
|
|
|
|
```json
|
|
{
|
|
"count": 1,
|
|
"next": null,
|
|
"previous": null,
|
|
"results": [
|
|
{
|
|
"id": "CFRPV98RPR1U8",
|
|
"name": "Grafana :blush:",
|
|
"team_id": null,
|
|
"link": "{{API_URL}}/integrations/v1/grafana/mReAoNwDm0eMwKo1mTeTwYo/",
|
|
"type": "grafana",
|
|
"default_route": {
|
|
"id": "RVBE4RKQSCGJ2",
|
|
"escalation_chain_id": "F5JU6KJET33FE",
|
|
"slack": {
|
|
"channel_id": "CH23212D"
|
|
}
|
|
},
|
|
"templates": {
|
|
"grouping_key": null,
|
|
"resolve_signal": null,
|
|
"acknowledge_signal": null,
|
|
"source_link": null,
|
|
"slack": {
|
|
"title": null,
|
|
"message": null,
|
|
"image_url": null
|
|
},
|
|
"web": {
|
|
"title": null,
|
|
"message": null,
|
|
"image_url": null
|
|
},
|
|
"sms": {
|
|
"title": null
|
|
},
|
|
"phone_call": {
|
|
"title": null
|
|
},
|
|
"telegram": {
|
|
"title": null,
|
|
"message": null,
|
|
"image_url": null
|
|
},
|
|
"email": {
|
|
"title": null,
|
|
"message": null
|
|
},
|
|
"msteams": {
|
|
"title": null,
|
|
"message": null,
|
|
"image_url": null
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
**HTTP request**
|
|
|
|
`GET {{API_URL}}/api/v1/integrations/`
|
|
|
|
# Update integration
|
|
|
|
```shell
|
|
curl "{{API_URL}}/api/v1/integrations/CFRPV98RPR1U8/" \
|
|
--request PUT \
|
|
--header "Authorization: meowmeowmeow" \
|
|
--header "Content-Type: application/json" \
|
|
--data '{
|
|
"templates": {
|
|
"grouping_key": null,
|
|
"resolve_signal": null,
|
|
"slack": {
|
|
"title": null,
|
|
"message": null,
|
|
"image_url": null
|
|
}
|
|
}
|
|
}'
|
|
```
|
|
|
|
The above command returns JSON structured in the following way:
|
|
|
|
```json
|
|
{
|
|
"id": "CFRPV98RPR1U8",
|
|
"name": "Grafana :blush:",
|
|
"team_id": null,
|
|
"link": "{{API_URL}}/integrations/v1/grafana/mReAoNwDm0eMwKo1mTeTwYo/",
|
|
"type": "grafana",
|
|
"default_route": {
|
|
"id": "RVBE4RKQSCGJ2",
|
|
"escalation_chain_id": "F5JU6KJET33FE",
|
|
"slack": {
|
|
"channel_id": "CH23212D"
|
|
}
|
|
},
|
|
"templates": {
|
|
"grouping_key": null,
|
|
"resolve_signal": null,
|
|
"slack": {
|
|
"title": null,
|
|
"message": null,
|
|
"image_url": null
|
|
},
|
|
"web": {
|
|
"title": null,
|
|
"message": null,
|
|
"image_url": null
|
|
},
|
|
"email": {
|
|
"title": null,
|
|
"message": null
|
|
},
|
|
"sms": {
|
|
"title": null
|
|
},
|
|
"phone_call": {
|
|
"title": null
|
|
},
|
|
"telegram": {
|
|
"title": null,
|
|
"message": null,
|
|
"image_url": null
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
**HTTP request**
|
|
|
|
`PUT {{API_URL}}/api/v1/integrations/<INTEGRATION_ID>/`
|
|
|
|
# Delete integration
|
|
|
|
Deleted integrations will stop recording new alerts from monitoring. Integration removal won't trigger removal of
|
|
related alert groups or alerts.
|
|
|
|
```shell
|
|
curl "{{API_URL}}/api/v1/integrations/CFRPV98RPR1U8/" \
|
|
--request DELETE \
|
|
--header "Authorization: meowmeowmeow"
|
|
```
|
|
|
|
**HTTP request**
|
|
|
|
`DELETE {{API_URL}}/api/v1/integrations/<INTEGRATION_ID>/`
|