* Use relative aliases for all non-current Grafana aliases Signed-off-by: Jack Baldry <jack.baldry@grafana.com> * Remove all current page aliases find docs/sources -type f -name '*.md' -exec sed -z -i 's#\n *- /docs/grafana/latest/[^\n]*\n#\n#' {} \; find docs/sources -type f -name '*.md' -exec sed -Ez -i 's#\n((aliases:\n *-)|aliases:\n)#\n\2#' {} \; Signed-off-by: Jack Baldry <jack.baldry@grafana.com> Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
143 lines
2.8 KiB
Markdown
143 lines
2.8 KiB
Markdown
---
|
|
description: Grafana External Group Sync HTTP API
|
|
keywords:
|
|
- grafana
|
|
- http
|
|
- documentation
|
|
- api
|
|
- team
|
|
- teams
|
|
- group
|
|
- member
|
|
- enterprise
|
|
title: 'External Group Sync HTTP API '
|
|
---
|
|
|
|
# External Group Synchronization API
|
|
|
|
> External Group Synchronization is only available in Grafana Enterprise. Read more about [Grafana Enterprise]({{< relref "../enterprise" >}}).
|
|
|
|
> If you have [Fine-grained access control]({{< relref "../enterprise/access-control/_index.md" >}}) enabled, access to endpoints will be controlled by Fine-grained access control permissions.
|
|
> Refer to specific endpoints to understand what permissions are required.
|
|
|
|
## Get External Groups
|
|
|
|
`GET /api/teams/:teamId/groups`
|
|
|
|
#### Required permissions
|
|
|
|
See note in the [introduction]({{< ref "#team-api" >}}) for an explanation.
|
|
|
|
| Action | Scope |
|
|
| ---------------------- | -------- |
|
|
| teams.permissions:read | teams:\* |
|
|
|
|
**Example Request**:
|
|
|
|
```http
|
|
GET /api/teams/1/groups HTTP/1.1
|
|
Accept: application/json
|
|
Content-Type: application/json
|
|
Authorization: Basic YWRtaW46YWRtaW4=
|
|
```
|
|
|
|
**Example Response**:
|
|
|
|
```http
|
|
HTTP/1.1 200
|
|
Content-Type: application/json
|
|
|
|
```
|
|
|
|
Status Codes:
|
|
|
|
- **200** - Ok
|
|
- **401** - Unauthorized
|
|
- **403** - Permission denied
|
|
|
|
## Add External Group
|
|
|
|
`POST /api/teams/:teamId/groups`
|
|
|
|
#### Required permissions
|
|
|
|
See note in the [introduction]({{< ref "#team-api" >}}) for an explanation.
|
|
|
|
| Action | Scope |
|
|
| ----------------------- | -------- |
|
|
| teams.permissions:write | teams:\* |
|
|
|
|
**Example Request**:
|
|
|
|
```http
|
|
POST /api/teams/1/members HTTP/1.1
|
|
Accept: application/json
|
|
Content-Type: application/json
|
|
Authorization: Basic YWRtaW46YWRtaW4=
|
|
|
|
```
|
|
|
|
**Example Response**:
|
|
|
|
```http
|
|
HTTP/1.1 200
|
|
Content-Type: application/json
|
|
|
|
```
|
|
|
|
Status Codes:
|
|
|
|
- **200** - Ok
|
|
- **400** - Group is already added to this team
|
|
- **401** - Unauthorized
|
|
- **403** - Permission denied
|
|
- **404** - Team not found
|
|
|
|
## Remove External Group
|
|
|
|
`DELETE /api/teams/:teamId/groups/:groupId`
|
|
|
|
#### Required permissions
|
|
|
|
See note in the [introduction]({{< ref "#team-api" >}}) for an explanation.
|
|
|
|
| Action | Scope |
|
|
| ----------------------- | -------- |
|
|
| teams.permissions:write | teams:\* |
|
|
|
|
**Example Request**:
|
|
|
|
```http
|
|
DELETE /api/teams/1/groups/cn=editors,ou=groups,dc=grafana,dc=org HTTP/1.1
|
|
Accept: application/json
|
|
Content-Type: application/json
|
|
Authorization: Basic YWRtaW46YWRtaW4=
|
|
```
|
|
|
|
**Example Response**:
|
|
|
|
```http
|
|
HTTP/1.1 200
|
|
Content-Type: application/json
|
|
|
|
```
|
|
|
|
Status Codes:
|
|
|
|
- **200** - Ok
|
|
- **401** - Unauthorized
|
|
- **403** - Permission denied
|
|
- **404** - Team not found/Group not found
|