mirror of https://github.com/grafana/grafana
Alerting: Notification channel http api enhancements (#16219)
Now returns uid in response to get notification channel by id. Adds GET/PUT/DELETE support for notification channel by uid, /api/alert-notifications/uid/:uid. Break apart alerting and alert notification http api docs in two pages and update documentation to make it up to date with current implementation. Fixes #16012pull/16229/head
parent
9f58b85693
commit
2ae63e70c0
@ -0,0 +1,369 @@ |
|||||||
|
+++ |
||||||
|
title = "Alerting Notification Channels HTTP API " |
||||||
|
description = "Grafana Alerting Notification Channel HTTP API" |
||||||
|
keywords = ["grafana", "http", "documentation", "api", "alerting", "alerts", "notifications"] |
||||||
|
aliases = [] |
||||||
|
type = "docs" |
||||||
|
[menu.docs] |
||||||
|
name = "Alerting Notification Channels" |
||||||
|
parent = "http_api" |
||||||
|
+++ |
||||||
|
|
||||||
|
# Alerting Notification Channels API |
||||||
|
|
||||||
|
## Identifier (id) vs unique identifier (uid) |
||||||
|
|
||||||
|
The identifier (id) of a notification channel is an auto-incrementing numeric value and is only unique per Grafana install. |
||||||
|
|
||||||
|
The unique identifier (uid) of a notification channel can be used for uniquely identify a notification channel between |
||||||
|
multiple Grafana installs. It's automatically generated if not provided when creating a notification channel. The uid |
||||||
|
allows having consistent URL's for accessing notification channels and when syncing notification channels between multiple |
||||||
|
Grafana installs, see [alert notification channel provisioning](/administration/provisioning/#alert-notification-channels) |
||||||
|
for more information. |
||||||
|
|
||||||
|
The uid can have a maximum length of 40 characters. |
||||||
|
|
||||||
|
## Get all notification channels |
||||||
|
|
||||||
|
Returns all notification channels that the authenticated user has permission to view. |
||||||
|
|
||||||
|
`GET /api/alert-notifications` |
||||||
|
|
||||||
|
**Example Request**: |
||||||
|
|
||||||
|
```http |
||||||
|
GET /api/alert-notifications HTTP/1.1 |
||||||
|
Accept: application/json |
||||||
|
Content-Type: application/json |
||||||
|
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk |
||||||
|
``` |
||||||
|
|
||||||
|
**Example Response**: |
||||||
|
|
||||||
|
```http |
||||||
|
HTTP/1.1 200 |
||||||
|
Content-Type: application/json |
||||||
|
|
||||||
|
[ |
||||||
|
{ |
||||||
|
"id": 1, |
||||||
|
"uid": "team-a-email-notifier", |
||||||
|
"name": "Team A", |
||||||
|
"type": "email", |
||||||
|
"isDefault": false, |
||||||
|
"sendReminder": false, |
||||||
|
"disableResolveMessage": false, |
||||||
|
"settings": { |
||||||
|
"addresses": "carl@grafana.com;dev@grafana.com" |
||||||
|
}, |
||||||
|
"created": "2018-04-23T14:44:09+02:00", |
||||||
|
"updated": "2018-08-20T15:47:49+02:00" |
||||||
|
} |
||||||
|
] |
||||||
|
|
||||||
|
``` |
||||||
|
|
||||||
|
## Get notification channel by uid |
||||||
|
|
||||||
|
`GET /api/alert-notifications/uid/:uid` |
||||||
|
|
||||||
|
Will return the notification channel given the notification channel uid. |
||||||
|
|
||||||
|
**Example Request**: |
||||||
|
|
||||||
|
```http |
||||||
|
GET /api/alert-notifications/uid/team-a-email-notifier HTTP/1.1 |
||||||
|
Accept: application/json |
||||||
|
Content-Type: application/json |
||||||
|
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk |
||||||
|
``` |
||||||
|
|
||||||
|
**Example Response**: |
||||||
|
|
||||||
|
```http |
||||||
|
HTTP/1.1 200 |
||||||
|
Content-Type: application/json |
||||||
|
|
||||||
|
{ |
||||||
|
"id": 1, |
||||||
|
"uid": "team-a-email-notifier", |
||||||
|
"name": "Team A", |
||||||
|
"type": "email", |
||||||
|
"isDefault": false, |
||||||
|
"sendReminder": false, |
||||||
|
"disableResolveMessage": false, |
||||||
|
"settings": { |
||||||
|
"addresses": "carl@grafana.com;dev@grafana.com" |
||||||
|
}, |
||||||
|
"created": "2018-04-23T14:44:09+02:00", |
||||||
|
"updated": "2018-08-20T15:47:49+02:00" |
||||||
|
} |
||||||
|
``` |
||||||
|
|
||||||
|
## Get notification channel by id |
||||||
|
|
||||||
|
`GET /api/alert-notifications/:id` |
||||||
|
|
||||||
|
Will return the notification channel given the notification channel id. |
||||||
|
|
||||||
|
**Example Request**: |
||||||
|
|
||||||
|
```http |
||||||
|
GET /api/alert-notifications/1 HTTP/1.1 |
||||||
|
Accept: application/json |
||||||
|
Content-Type: application/json |
||||||
|
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk |
||||||
|
``` |
||||||
|
|
||||||
|
**Example Response**: |
||||||
|
|
||||||
|
```http |
||||||
|
HTTP/1.1 200 |
||||||
|
Content-Type: application/json |
||||||
|
|
||||||
|
{ |
||||||
|
"id": 1, |
||||||
|
"uid": "team-a-email-notifier", |
||||||
|
"name": "Team A", |
||||||
|
"type": "email", |
||||||
|
"isDefault": false, |
||||||
|
"sendReminder": false, |
||||||
|
"disableResolveMessage": false, |
||||||
|
"settings": { |
||||||
|
"addresses": "carl@grafana.com;dev@grafana.com" |
||||||
|
}, |
||||||
|
"created": "2018-04-23T14:44:09+02:00", |
||||||
|
"updated": "2018-08-20T15:47:49+02:00" |
||||||
|
} |
||||||
|
``` |
||||||
|
|
||||||
|
## Create notification channel |
||||||
|
|
||||||
|
You can find the full list of [supported notifiers](/alerting/notifications/#all-supported-notifier) at the alert notifiers page. |
||||||
|
|
||||||
|
`POST /api/alert-notifications` |
||||||
|
|
||||||
|
**Example Request**: |
||||||
|
|
||||||
|
```http |
||||||
|
POST /api/alert-notifications HTTP/1.1 |
||||||
|
Accept: application/json |
||||||
|
Content-Type: application/json |
||||||
|
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk |
||||||
|
|
||||||
|
{ |
||||||
|
"name": "new alert notification", //Required |
||||||
|
"type": "email", //Required |
||||||
|
"isDefault": false, |
||||||
|
"sendReminder": false, |
||||||
|
"settings": { |
||||||
|
"addresses": "carl@grafana.com;dev@grafana.com" |
||||||
|
} |
||||||
|
} |
||||||
|
``` |
||||||
|
|
||||||
|
**Example Response**: |
||||||
|
|
||||||
|
```http |
||||||
|
HTTP/1.1 200 |
||||||
|
Content-Type: application/json |
||||||
|
|
||||||
|
{ |
||||||
|
"id": 1, |
||||||
|
"uid": "cIBgcSjkk", |
||||||
|
"name": "new alert notification", |
||||||
|
"type": "email", |
||||||
|
"isDefault": false, |
||||||
|
"sendReminder": false, |
||||||
|
"settings": { |
||||||
|
"addresses": "carl@grafana.com;dev@grafana.com" |
||||||
|
}, |
||||||
|
"created": "2018-04-23T14:44:09+02:00", |
||||||
|
"updated": "2018-08-20T15:47:49+02:00" |
||||||
|
} |
||||||
|
``` |
||||||
|
|
||||||
|
## Update notification channel by uid |
||||||
|
|
||||||
|
`PUT /api/alert-notifications/uid/:uid` |
||||||
|
|
||||||
|
Updates an existing notification channel identified by uid. |
||||||
|
|
||||||
|
**Example Request**: |
||||||
|
|
||||||
|
```http |
||||||
|
PUT /api/alert-notifications/uid/cIBgcSjkk HTTP/1.1 |
||||||
|
Accept: application/json |
||||||
|
Content-Type: application/json |
||||||
|
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk |
||||||
|
|
||||||
|
{ |
||||||
|
"name": "new alert notification", //Required |
||||||
|
"type": "email", //Required |
||||||
|
"isDefault": false, |
||||||
|
"sendReminder": true, |
||||||
|
"frequency": "15m", |
||||||
|
"settings": { |
||||||
|
"addresses": "carl@grafana.com;dev@grafana.com" |
||||||
|
} |
||||||
|
} |
||||||
|
``` |
||||||
|
|
||||||
|
**Example Response**: |
||||||
|
|
||||||
|
```http |
||||||
|
HTTP/1.1 200 |
||||||
|
Content-Type: application/json |
||||||
|
|
||||||
|
{ |
||||||
|
"id": 1, |
||||||
|
"uid": "cIBgcSjkk", |
||||||
|
"name": "new alert notification", |
||||||
|
"type": "email", |
||||||
|
"isDefault": false, |
||||||
|
"sendReminder": true, |
||||||
|
"frequency": "15m", |
||||||
|
"settings": { |
||||||
|
"addresses": "carl@grafana.com;dev@grafana.com" |
||||||
|
}, |
||||||
|
"created": "2017-01-01 12:34", |
||||||
|
"updated": "2017-01-01 12:34" |
||||||
|
} |
||||||
|
``` |
||||||
|
|
||||||
|
## Update notification channel by id |
||||||
|
|
||||||
|
`PUT /api/alert-notifications/:id` |
||||||
|
|
||||||
|
Updates an existing notification channel identified by id. |
||||||
|
|
||||||
|
**Example Request**: |
||||||
|
|
||||||
|
```http |
||||||
|
PUT /api/alert-notifications/1 HTTP/1.1 |
||||||
|
Accept: application/json |
||||||
|
Content-Type: application/json |
||||||
|
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk |
||||||
|
|
||||||
|
{ |
||||||
|
"id": 1, |
||||||
|
"uid": "cIBgcSjkk", |
||||||
|
"name": "new alert notification", //Required |
||||||
|
"type": "email", //Required |
||||||
|
"isDefault": false, |
||||||
|
"sendReminder": true, |
||||||
|
"frequency": "15m", |
||||||
|
"settings": { |
||||||
|
"addresses": "carl@grafana.com;dev@grafana.com" |
||||||
|
} |
||||||
|
} |
||||||
|
``` |
||||||
|
|
||||||
|
**Example Response**: |
||||||
|
|
||||||
|
```http |
||||||
|
HTTP/1.1 200 |
||||||
|
Content-Type: application/json |
||||||
|
|
||||||
|
{ |
||||||
|
"id": 1, |
||||||
|
"uid": "cIBgcSjkk", |
||||||
|
"name": "new alert notification", |
||||||
|
"type": "email", |
||||||
|
"isDefault": false, |
||||||
|
"sendReminder": true, |
||||||
|
"frequency": "15m", |
||||||
|
"settings": { |
||||||
|
"addresses": "carl@grafana.com;dev@grafana.com" |
||||||
|
}, |
||||||
|
"created": "2017-01-01 12:34", |
||||||
|
"updated": "2017-01-01 12:34" |
||||||
|
} |
||||||
|
``` |
||||||
|
|
||||||
|
## Delete alert notification by uid |
||||||
|
|
||||||
|
`DELETE /api/alert-notifications/uid/:uid` |
||||||
|
|
||||||
|
Deletes an existing notification channel identified by uid. |
||||||
|
|
||||||
|
**Example Request**: |
||||||
|
|
||||||
|
```http |
||||||
|
DELETE /api/alert-notifications/uid/team-a-email-notifier HTTP/1.1 |
||||||
|
Accept: application/json |
||||||
|
Content-Type: application/json |
||||||
|
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk |
||||||
|
``` |
||||||
|
|
||||||
|
**Example Response**: |
||||||
|
|
||||||
|
```http |
||||||
|
HTTP/1.1 200 |
||||||
|
Content-Type: application/json |
||||||
|
|
||||||
|
{ |
||||||
|
"message": "Notification deleted" |
||||||
|
} |
||||||
|
``` |
||||||
|
|
||||||
|
## Delete alert notification by id |
||||||
|
|
||||||
|
`DELETE /api/alert-notifications/:id` |
||||||
|
|
||||||
|
Deletes an existing notification channel identified by id. |
||||||
|
|
||||||
|
**Example Request**: |
||||||
|
|
||||||
|
```http |
||||||
|
DELETE /api/alert-notifications/1 HTTP/1.1 |
||||||
|
Accept: application/json |
||||||
|
Content-Type: application/json |
||||||
|
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk |
||||||
|
``` |
||||||
|
|
||||||
|
**Example Response**: |
||||||
|
|
||||||
|
```http |
||||||
|
HTTP/1.1 200 |
||||||
|
Content-Type: application/json |
||||||
|
|
||||||
|
{ |
||||||
|
"message": "Notification deleted" |
||||||
|
} |
||||||
|
``` |
||||||
|
|
||||||
|
## Test notification channel |
||||||
|
|
||||||
|
Sends a test notification message for the given notification channel type and settings. |
||||||
|
You can find the full list of [supported notifiers](/alerting/notifications/#all-supported-notifier) at the alert notifiers page. |
||||||
|
|
||||||
|
`POST /api/alert-notifications/test` |
||||||
|
|
||||||
|
**Example Request**: |
||||||
|
|
||||||
|
```http |
||||||
|
POST /api/alert-notifications/test HTTP/1.1 |
||||||
|
Accept: application/json |
||||||
|
Content-Type: application/json |
||||||
|
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk |
||||||
|
|
||||||
|
{ |
||||||
|
"type": "email", |
||||||
|
"settings": { |
||||||
|
"addresses": "carl@grafana.com;dev@grafana.com" |
||||||
|
} |
||||||
|
} |
||||||
|
``` |
||||||
|
|
||||||
|
**Example Response**: |
||||||
|
|
||||||
|
```http |
||||||
|
HTTP/1.1 200 |
||||||
|
Content-Type: application/json |
||||||
|
|
||||||
|
{ |
||||||
|
"message": "Test notification sent" |
||||||
|
} |
||||||
|
``` |
||||||
|
|
Loading…
Reference in new issue