

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 du tableau de bord
<a name="Grafana-API-Dashboard"></a>

Utilisez l'API Dashboard pour créer, mettre à jour, supprimer et utiliser des tableaux de bord dans l'espace de travail Amazon Managed Grafana. 

L'identifiant (id) d'un tableau de bord est une valeur numérique à incrémentation automatique qui n'est unique que par espace de travail. L'identifiant unique (uid) d'un tableau de bord peut être utilisé pour identifier de manière unique un tableau de bord entre plusieurs espaces de travail Amazon Managed Grafana. Il est généré automatiquement si vous n'en fournissez pas lors de la création d'un tableau de bord. L'uid permet d'avoir un accès cohérent URLs aux tableaux de bord et lors de la synchronisation des tableaux de bord entre plusieurs espaces de travail. L'utilisation de l'UID signifie que la modification du titre d'un tableau de bord ne rompt aucun lien mis en signet vers ce tableau de bord.

L'UID peut avoir une longueur maximale de 40 caractères.

**Note**  
Pour utiliser une API Grafana avec votre espace de travail Amazon Managed Grafana, vous devez disposer d'un jeton d'API Grafana valide. Vous l'incluez dans le `Authorization` champ de la demande d'API. Pour plus d'informations sur la création d'un jeton pour authentifier vos appels d'API, consultez[Authentifiez-vous avec des jetons](authenticating-grafana-apis.md).

## Créer/mettre à jour le tableau de bord
<a name="Grafana-API-Dashboard-createupdate"></a>

```
POST /api/dashboards/db
```

Crée un nouveau tableau de bord ou met à jour un tableau de bord existant.

**Exemple de demande pour créer un nouveau tableau de bord**

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

{
  "dashboard": {
    "id": null,
    "uid": null,
    "title": "Production Overview",
    "tags": [ "templated" ],
    "timezone": "browser",
    "schemaVersion": 16,
    "version": 0,
    "refresh": "25s"
  },
  "folderId": 0,
  "folderUid": "l3KqBxCMz",
  "message": "Made changes to xyz",
  "overwrite": false
}
```

Schéma de corps JSON :
+ **tableau de bord** — Le modèle de tableau de bord complet. Utilisez null pour créer un nouveau tableau de bord.
+ **dashboard.id** — Utilisez null pour créer un nouveau tableau de bord.
+ **dashboard.uid — Identifiant** unique facultatif lorsque vous l'utilisez pour créer un nouveau tableau de bord. Si la valeur est nulle, un nouvel UID est généré. 
+ **folderid** — L'identifiant du dossier dans lequel enregistrer le tableau de bord.
+ **FolderUID** — L'UID du dossier dans lequel enregistrer le tableau de bord. Remplace la valeur de `folderid`
+ **remplacer** — Spécifiez le remplacement `true` d'un tableau de bord existant par une version plus récente, le même titre de tableau de bord dans le dossier ou le même identifiant de tableau de bord.
+ **message** — Définissez un message de validation pour l'historique des versions.
+ **rafraîchir** — Définissez l'intervalle d'actualisation du tableau de bord. S'il est inférieur à l'intervalle de rafraîchissement minimum, il est ignoré et l'intervalle de rafraîchissement minimum est utilisé. 

Pour ajouter ou mettre à jour une règle d'alerte pour un panneau de tableau de bord, déclarez un `dashboard.panels.alert` bloc.

**Exemple de demande de mise à jour d'une règle d'alerte de tableau de bord**

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

{
 "dashboard":  {
        "id": 104,
        "panels": [
            {
                "alert": {
                    "alertRuleTags": {},
                    "conditions": [
                        {
                            "evaluator": {
                                "params": [
                                    25
                                ],
                                "type": "gt"
                            },
                            "operator": {
                                "type": "and"
                            },
                            "query": {
                                "params": [
                                    "A",
                                    "5m",
                                    "now"
                                ]
                            },
                            "reducer": {
                                "params": [],
                                "type": "avg"
                            },
                            "type": "query"
                        }
                    ],
                    "executionErrorState": "alerting",
                    "for": "5m",
                    "frequency": "1m",
                    "handler": 1,
                    "name": "Panel Title alert",
                    "noDataState": "no_data",
                    "notifications": []
                },
                "aliasColors": {},
                "bars": false,
                "dashLength": 10,
                "dashes": false,
                "datasource": null,
                "fieldConfig": {
                    "defaults": {
                        "custom": {}
                    },
                    "overrides": []
                },
                "fill": 1,
                "fillGradient": 0,
                "gridPos": {
                    "h": 9,
                    "w": 12,
                    "x": 0,
                    "y": 0
                },
                "hiddenSeries": false,
                "id": 2,
                "legend": {
                    "avg": false,
                    "current": false,
                    "max": false,
                    "min": false,
                    "show": true,
                    "total": false,
                    "values": false
                },
                "lines": true,
                "linewidth": 1,
                "nullPointMode": "null",
                "options": {
                    "dataLinks": []
                },
                "percentage": false,
                "pointradius": 2,
                "points": false,
                "renderer": "flot",
                "seriesOverrides": [],
                "spaceLength": 10,
                "stack": false,
                "steppedLine": false,
                "targets": [
                    {
                        "refId": "A",
                        "scenarioId": "random_walk"
                    }
                ],
                "thresholds": [
                    {
                        "colorMode": "critical",
                        "fill": true,
                        "line": true,
                        "op": "gt",
                        "value": 50
                    }
                ],
                "timeFrom": null,
                "timeRegions": [],
                "timeShift": null,
                "title": "Panel Title",
                "tooltip": {
                    "shared": true,
                    "sort": 0,
                    "value_type": "individual"
                },
                "type": "graph",
                "xaxis": {
                    "buckets": null,
                    "mode": "time",
                    "name": null,
                    "show": true,
                    "values": []
                },
                "yaxes": [
                    {
                        "format": "short",
                        "label": null,
                        "logBase": 1,
                        "max": null,
                        "min": null,
                        "show": true
                    },
                    {
                        "format": "short",
                        "label": null,
                        "logBase": 1,
                        "max": null,
                        "min": null,
                        "show": true
                    }
                ],
                "yaxis": {
                    "align": false,
                    "alignLevel": null
                }
            }
        ],
        "title": "Update alert rule via API",
        "uid": "dHEquNzGz",
        "version": 1
    }
}
```

**Exemple de réponse**

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

{
  "id":      1,
  "uid":     "cIBgcSjkk",
  "url":     "/d/cIBgcSjkk/production-overview",
  "status":  "success",
  "version": 1,
  "slug":    "production-overview" //deprecated in Grafana v5.0
}
```

Codes de statut :
+ **200** — Créé
+ **400** — Erreur telle qu'un JSON non valide, des champs non valides ou manquants
+ **401** — Non autorisé
+ **403** — Accès refusé
+ **412 — Échec** de la précondition

Le code d'état **412** est utilisé pour expliquer pourquoi le tableau de bord ne peut pas être créé.
+  Le tableau de bord a été modifié par quelqu'un d'autre `status=version-mismatch` 
+  Un tableau de bord portant le même nom existe déjà dans le dossier `status=name-exists` 
+  Un tableau de bord avec le même UID existe déjà `status=name-exists` 
+ Le tableau de bord appartient au plugin `plugin title` `status=plugin-dashboard`

Le corps de la réponse possède les propriétés suivantes. Si un autre tableau de bord porte le même titre, la `status` valeur est`name-exists`.

```
HTTP/1.1 412 Precondition Failed
Content-Type: application/json; charset=UTF-8
Content-Length: 97

{
  "message": "The dashboard has been changed by someone else",
  "status": "version-mismatch"
}
```

## Obtenir le tableau de bord par UID
<a name="Grafana-API-Dashboard-get"></a>

```
GET /api/dashboards/uid/:uid
```

Renvoie le tableau de bord correspondant à l'UID. Les métadonnées renvoyées peuvent contenir des informations sur l'UID du dossier contenant le tableau de bord.

**Exemple de demande**

```
GET /api/dashboards/uid/cIBgcSjkk 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

{
  "dashboard": {
    "id": 1,
    "uid": "cIBgcSjkk",
    "title": "Production Overview",
    "tags": [ "templated" ],
    "timezone": "browser",
    "schemaVersion": 16,
    "version": 0
  },
  "meta": {
    "isStarred": false,
    "url": "/d/cIBgcSjkk/production-overview",
    "folderId": 2,
    "folderUid": "l3KqBxCMz",
    "slug": "production-overview" //deprecated in Grafana v5.0
  }
}
```

Codes de statut :
+ **200** — Trouvé
+ **401** — Non autorisé
+ **403** — Accès refusé
+ **404** — Non trouvé

## Supprimer le tableau de bord par UID
<a name="Grafana-API-Dashboard-delete"></a>

```
DELETE /api/dashboards/uid/:uid
```

Supprime le tableau de bord correspondant à l'UID.

**Exemple de demande**

```
DELETE /api/dashboards/uid/cIBgcSjkk 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

{
  "title": "Production Overview",
  "message": "Dashboard Production Overview deleted",
  "id": 2
}
```

Codes de statut :
+ **200** — Supprimé
+ **401** — Non autorisé
+ **403** — Accès refusé
+ **404** — Non trouvé

## Permet d'accéder au tableau de bord d'accueil
<a name="Grafana-API-Dashboard-home"></a>

```
GET /api/dashboards/home
```

Renvoie le tableau de bord d'accueil.

**Exemple de demande**

```
GET /api/dashboards/home 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

{
  "dashboard": {
    "editable":false,
    "hideControls":true,
    "nav":[
      {
        "enable":false,
        "type":"timepicker"
      }
    ],
    "style":"dark",
    "tags":[],
    "templating":{
      "list":[
      ]
    },
    "time":{
    },
    "timezone":"browser",
    "title":"Home",
    "version":5
  },
  "meta":	{
    "isHome":true,
    "canSave":false,
    "canEdit":false,
    "canStar":false,
    "url":"",
    "expires":"0001-01-01T00:00:00Z",
    "created":"0001-01-01T00:00:00Z"
  }
}
```

## Obtenir les balises du tableau de bord
<a name="Grafana-API-Dashboard-tags"></a>

```
GET /api/dashboards/tags
```

Renvoie toutes les balises des tableaux de bord.

**Exemple de demande**

```
GET /api/dashboards/tags 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

[
  {
    "term":"tag1",
    "count":1
  },
  {
    "term":"tag2",
    "count":4
  }
]
```