

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'équipe
<a name="v12-Grafana-API-Team"></a>

Utilisez l'API Team pour travailler avec des équipes dans un espace de travail Amazon Managed Grafana. Toutes les actions de cette API nécessitent que vous ayez le rôle d'administrateur.

**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.

## Recherche par équipe avec pagination
<a name="v12-Grafana-API-Team-Searchpaging"></a>

```
GET /api/teams/search?perpage=50&page=1&query=myteam
```

or

```
GET /api/teams/search?name=myteam
```

**Exemple de demande**

```
GET /api/teams/search?perpage=10&page=1&query=myteam HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```

**Utilisation du paramètre de requête**

La valeur par défaut du `perpage` paramètre est 1000 et celle du `page` paramètre est 1.

Le `totalCount` champ de la réponse peut être utilisé pour la pagination de la liste des équipes. Par exemple, s'il s'`totalCount`agit de 100 équipes et que le `perpage` paramètre est défini sur 10, il y a 10 pages d'équipes.

Le `query` paramètre est facultatif et renvoie des résultats lorsque la valeur de la requête est contenue dans le `name` champ. Les valeurs de requête contenant des espaces doivent être URL-encoded. Par exemple, `query=my%20team`.

**Utilisation du paramètre name**

Le `name` paramètre renvoie une seule équipe s'il correspond au `name` champ.

**Exemple de réponse**

```
HTTP/1.1 200
Content-Type: application/json

{
  "totalCount": 1,
  "teams": [
    {
      "id": 1,
      "orgId": 1,
      "name": "MyTestTeam",
      "email": "",
      "avatarUrl": "\/avatar\/3f49c15916554246daa714b9bd0ee39",
      "memberCount": 1
    }
  ],
  "page": 1,
  "perPage": 1000
```

Codes de statut :
+ **200** — Créé
+ **401** — Non autorisé
+ **403** — Permission refusée
+ **404** — L'équipe est introuvable (si vous recherchez par nom)

## Obtenir une équipe par identifiant
<a name="v12-Grafana-API-Team-getbyId"></a>

```
GET /api/teams/:id
```

**Exemple de demande**

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

**Exemple de réponse**

```
HHTTP/1.1 200
Content-Type: application/json

{
  "id": 1,
  "orgId": 1,
  "name": "MyTestTeam",
  "email": "",
  "created": "2017-12-15T10:40:45+01:00",
  "updated": "2017-12-15T10:40:45+01:00"
}
```

## Ajouter une équipe
<a name="v12-Grafana-API-Team-add"></a>

Les membres `name` de l'équipe doivent être uniques. Le `name` champ est obligatoire et les `orgId` champs `email` et sont facultatifs.

```
POST /api/teams
```

**Exemple de demande**

```
POST /api/teams HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

{
  "name": "MyTestTeam",
  "email": "email@test.com",
  "orgId": 2
}
```

**Exemple de réponse**

```
HTTP/1.1 200
Content-Type: application/json

{"message":"Team created","teamId":2}
```

Codes de statut :
+ **200** — Créé
+ **401** — Non autorisé
+ **403** — Permission refusée
+ **409** — Le nom de l'équipe existe déjà

## Équipe de mise à jour
<a name="v12-Grafana-API-Team-update"></a>

```
PUT /api/teams/:id
```

Seuls les `email` champs `name` et peuvent être mis à jour.

**Exemple de demande**

```
PUT /api/teams/2 HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
        
{
  "name": "MyTestTeam",
  "email": "email@test.com"
}
```

**Exemple de réponse**

```
HTTP/1.1 200
Content-Type: application/json

{"message":"Team updated"}
```

Codes de statut :
+ **200** — Créé
+ **401** — Non autorisé
+ **403** — Permission refusée
+ **404** — Équipe introuvable
+ **409** — Le nom de l'équipe existe déjà

## Supprimer l'équipe par identifiant
<a name="v12-Grafana-API-Team-deletebyId"></a>

```
DELETE /api/teams/:id
```

**Exemple de demande**

```
DELETE /api/teams/2 HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```

**Exemple de réponse**

```
HTTP/1.1 200
Content-Type: application/json

{"message":"Team deleted"}
```

Codes de statut :
+ **200** — Créé
+ **401** — Non autorisé
+ **403** — Permission refusée
+ **404** — Équipe introuvable

## Trouvez des membres de l'équipe
<a name="v12-Grafana-API-Team-getmembers"></a>

```
GET /api/teams/:teamId/members
```

**Exemple de demande**

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

**Exemple de réponse**

```
HTTP/1.1 200
Content-Type: application/json

[
  {
    "orgId": 1,
    "teamId": 1,
    "userId": 3,
    "email": "user1@email.com",
    "login": "user1",
    "avatarUrl": "\/avatar\/1b3c32f6386b0185c40d359cdc733a7"
  },
  {
    "orgId": 1,
    "teamId": 1,
    "userId": 2,
    "email": "user2@email.com",
    "login": "user2",
    "avatarUrl": "\/avatar\/cad3c68da76e45d10269e8ef02f8e7"
  }
]
```

Codes de statut :
+ **200** — Créé
+ **401** — Non autorisé
+ **403** — Permission refusée

## Ajouter un membre de l'équipe
<a name="v12-Grafana-API-Team-addmember"></a>

```
POST /api/teams/:teamId/members
```

**Exemple de demande**

```
POST /api/teams/1/members HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
      
{
  "userId": 2
}
```

**Exemple de réponse**

```
HTTP/1.1 200
Content-Type: application/json

{"message":"Member added to Team"}
```

Codes de statut :
+ **200** — Créé
+ **400** — L'utilisateur fait déjà partie de l'équipe
+ **401** — Non autorisé
+ **403** — Permission refusée
+ **404** — Équipe introuvable

## Supprimer un membre de l'équipe
<a name="v12-Grafana-API-Team-removemember"></a>

```
DELETE /api/teams/:teamId/members/:userId
```

**Exemple de demande**

```
DELETE /api/teams/2/members/3 HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```

**Exemple de réponse**

```
HTTP/1.1 200
Content-Type: application/json

{"message":"Team Member removed"}
```

Codes de statut :
+ **200** — Créé
+ **401** — Non autorisé
+ **403** — Permission refusée
+ **404** — Aucun found/team membre de l'équipe n'a été trouvé

## Obtenir les préférences de l'équipe
<a name="v12-Grafana-API-Team-getpreferences"></a>

```
GET /api/teams/:teamId/preferences
```

**Exemple de demande**

```
GET /api/teams/2/preferences HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```

**Exemple de réponse**

```
HTTP/1.1 200
Content-Type: application/json

{
  "theme": "",
  "homeDashboardId": 0,
  "timezone": ""
}
```

## Mettre à jour les préférences des équipes
<a name="v12-Grafana-API-Team-updatepreferences"></a>

```
PUT /api/teams/:teamId/preferences
```

**Exemple de demande**

```
PUT /api/teams/2/preferences HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

{
  "theme": "dark",
  "homeDashboardId": 39,
  "timezone": "utc"
}
```

Schéma de corps JSON :
+ **theme** — Spécifiez soit `light``dark`, soit une chaîne vide pour utiliser le thème par défaut.
+ **home DashboardId** — Le chiffre `:id` d'un tableau de bord. La valeur par défaut est 0.
+ **timezone** — Spécifiez soit `utc``browser`, soit une chaîne vide pour utiliser la valeur par défaut. 

L'omission d'un paramètre entraîne le remplacement de la valeur actuelle par la valeur par défaut du système.

**Exemple de réponse**

```
HTTP/1.1 200
Content-Type: text/plain; charset=utf-8

{
  "message":"Preferences updated"
}
```