

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# API d'autorisations de source de données
<a name="v10-Grafana-API-DatasourcePermissions"></a>

Utilisez l'API Data Source Permissions pour activer, désactiver, répertorier, ajouter et supprimer des autorisations pour les sources de données. 

Vous pouvez définir des autorisations pour un utilisateur ou une équipe. Les autorisations ne peuvent pas être définies pour les administrateurs, car ils ont toujours accès à tout.

Les niveaux d'autorisation pour le champ d'autorisation sont les suivants :
+ 1 = Requête

**Note**  
Pour utiliser une API Grafana avec votre espace de travail Amazon Managed Grafana, vous devez disposer d'un jeton de compte de service valide. Vous l'incluez dans le `Authorization` champ de la demande d'API.

## Activer les autorisations pour une source de données
<a name="v10-Grafana-API-DatasourcePermissions-enable"></a>

```
POST /api/datasources/:id/enable-permissions
```

Active les autorisations pour la source de données avec l'identifiant donné. À l'exception des administrateurs de l'organisation, personne ne peut interroger la source de données tant que des autorisations n'ont pas été ajoutées pour permettre à certains utilisateurs ou équipes d'interroger la source de données.

**Exemple de demande**

```
POST /api/datasources/1/enable-permissions
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```

**Exemple de réponse**

```
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 35

{"message":"Datasource permissions enabled"}
```

Codes de statut :
+ **200** — Créé
+ **400** — Les autorisations ne peuvent pas être activées, consultez le corps de la réponse pour plus de détails.
+ **401** — Non autorisé
+ **403** — Accès refusé
+ **404** — Source de données introuvable

## Désactiver les autorisations pour une source de données
<a name="v10-Grafana-API-DatasourcePermissions-disable"></a>

```
POST /api/datasources/:id/disable-permissions
```

Désactive les autorisations pour la source de données avec l'identifiant donné. Toutes les autorisations existantes sont supprimées et tout le monde peut interroger la source de données.

**Exemple de demande**

```
POST /api/datasources/1/disable-permissions
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

{}
```

**Exemple de réponse**

```
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 35

{"message":"Datasource permissions disabled"}
```

Codes de statut :
+ **200** — D'accord
+ **400** — Les autorisations ne peuvent pas être désactivées, consultez le corps de la réponse pour plus de détails.
+ **401** — Non autorisé
+ **403** — Accès refusé
+ **404** — Source de données introuvable

## Obtenir des autorisations pour une source de données
<a name="v10-Grafana-API-DatasourcePermissions-get"></a>

```
GET /api/datasources/:id/permissions
```

Obtient toutes les autorisations existantes pour la source de données avec le paramètre donné`id`.

**Exemple de demande**

```
GET /api/datasources/1/permissions HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```

**Exemple de réponse**

```
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 551

{
  "datasourceId": 1,
  "enabled": true,
  "permissions":
  [
    {
      "id": 1,
      "datasourceId": 1,
      "userId": 1,
      "userLogin": "user",
      "userEmail": "user@test.com",
      "userAvatarUrl": "/avatar/46d229b033af06a191ff2267bca9ae",
      "permission": 1,
      "permissionName": "Query",
      "created": "2017-06-20T02:00:00+02:00",
      "updated": "2017-06-20T02:00:00+02:00",
    },
    {
      "id": 2,
      "datasourceId": 1,
      "teamId": 1,
      "team": "A Team",
      "teamAvatarUrl": "/avatar/46d229b033af06a191ff2267bca9ae",
      "permission": 1,
      "permissionName": "Query",
      "created": "2017-06-20T02:00:00+02:00",
      "updated": "2017-06-20T02:00:00+02:00",
    }
  ]
}
```

Codes de statut :
+ **200** — D'accord
+ **401** — Non autorisé
+ **403** — Accès refusé
+ **404** — Source de données introuvable

## Ajouter une autorisation pour une source de données
<a name="v10-Grafana-API-DatasourcePermissions-add"></a>

```
POST /api/datasources/:id/permissions
```

Ajoute une autorisation utilisateur pour la source de données avec la valeur donnée`id`.

**Exemple de demande d'ajout d'une autorisation utilisateur**

```
POST /api/datasources/1/permissions
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

{
  "userId": 1,
  "permission": 1
}
```

**Exemple de réponse pour l'ajout d'une autorisation utilisateur**

```
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 35

{"message":"Datasource permission added"}
```

**Exemple de demande d'ajout d'une autorisation d'équipe**

```
POST /api/datasources/1/permissions
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

{
  "teamId": 1,
  "permission": 1
}
```

**Exemple de réponse pour l'ajout d'une autorisation d'équipe**

```
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 35

{"message":"Datasource permission added"}
```

Codes de statut :
+ **200** — D'accord
+ **400** — L'autorisation ne peut pas être ajoutée, voir le corps de la réponse pour plus de détails.
+ **401** — Non autorisé
+ **403** — Accès refusé
+ **404** — Source de données introuvable

## Supprimer l'autorisation pour une source de données
<a name="v10-Grafana-API-DatasourcePermissions-remove"></a>

```
DELETE /api/datasources/:id/permissions/:permissionId
```

Supprime l'autorisation avec le PermissionID donné pour la source de données avec le PermissionID donné. `id`

**Exemple de demande**

```
DELETE /api/datasources/1/permissions/2
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```

**Exemple de réponse**

```
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 35

{"message":"Datasource permission removed"}
```

Codes de statut :
+ **200** — D'accord
+ **401** — Non autorisé
+ **403** — Accès refusé
+ **404** — Source de données introuvable ou autorisation introuvable