

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# API de paneles
<a name="Grafana-API-Dashboard"></a>

Use la API de paneles para crear, actualizar y eliminar paneles, y trabajar con ellos, en el espacio de trabajo de Amazon Managed Grafana. 

El identificador (id) de un panel es un valor numérico que se incrementa automáticamente y solo es único por espacio de trabajo. El identificador único (uid) de un panel se puede utilizar para identificar de forma única un panel entre varios espacios de trabajo de Amazon Managed Grafana. Se genera automáticamente si no lo proporciona al crear un panel. El uid permite tener un acceso uniforme a URLs los paneles y al sincronizar los paneles entre varios espacios de trabajo. El uso del uid significa que al cambiar el título de un panel no se interrumpe ningún enlace marcado a ese panel.

El uid puede tener una longitud máxima de 40 caracteres.

**nota**  
Para usar una API de Grafana con su espacio de trabajo de Amazon Managed Grafana, debe tener un token de API de Grafana que sea válido. Lo incluye en el campo `Authorization` de la solicitud de API. Para obtener información sobre cómo crear un token para autenticar sus llamadas a la API, consulte [Autenticación con tokens](authenticating-grafana-apis.md).

## Creación o actualización de un panel
<a name="Grafana-API-Dashboard-createupdate"></a>

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

Crea un panel nuevo o actualiza uno existente.

**Ejemplo de solicitud para crear un panel nuevo**

```
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
}
```

Esquema de cuerpo JSON:
+ **dashboard**: modelo de panel completo. Utilice el valor “null” para crear un nuevo panel.
+ **dashboard.id**: utilice el valor “null” para crear un nuevo panel.
+ **dashboard.uid**: identificador único opcional cuando lo usa para crear un panel nuevo. Si su valor es “null”, se genera un nuevo uid. 
+ **folderid**: id de la carpeta en la que se va a guardar el panel.
+ **folderid**: uid de la carpeta en la que se va a guardar el panel. Anula el valor de `folderid`
+ **overwrite**: especifique `true` si desea sobrescribir un panel existente con una versión más reciente, el mismo título del panel en la carpeta o el mismo uid del panel.
+ **message**: establece un mensaje de confirmación para el historial de versiones.
+ **refresh**: establece el intervalo de actualización del panel. Si es inferior al intervalo de actualización mínimo, se ignora y se utiliza el intervalo de actualización mínimo. 

Si quiere agregar o actualizar una regla de alerta para un panel, declare un bloque `dashboard.panels.alert`.

**Ejemplo de solicitud para actualizar una regla de alerta del panel**

```
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
    }
}
```

**Ejemplo de respuesta**

```
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
}
```

Códigos de estado:
+ **200**: creado.
+ **400**: error (como JSON no válido, campos no válidos o campos faltantes).
+ **401**: no autorizado.
+ **403**: acceso denegado.
+ **412**: error en la condición previa.

El código de estado **412** se usa para explicar por qué no se puede crear el panel.
+  Otra persona ha cambiado el panel `status=version-mismatch` 
+  Ya existe un panel con el mismo nombre en la carpeta `status=name-exists` 
+  Ya existe un panel con el mismo uid `status=name-exists` 
+ El panel pertenece al complemento `plugin title` `status=plugin-dashboard`

El cuerpo de la respuesta tiene las siguientes propiedades. Si otro panel tiene el mismo título, el valor de `status` es `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"
}
```

## Obtención de un panel por uid
<a name="Grafana-API-Dashboard-get"></a>

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

Devuelve el panel que coincide con el uid. Los metadatos devueltos pueden contener información sobre el UID de la carpeta que contiene el panel.

**Ejemplo de solicitud**

```
GET /api/dashboards/uid/cIBgcSjkk HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```

**Ejemplo de respuesta**

```
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
  }
}
```

Códigos de estado:
+ **200**: encontrado.
+ **401**: no autorizado.
+ **403**: acceso denegado.
+ **404**: no encontrado.

## Eliminación de un panel por uid
<a name="Grafana-API-Dashboard-delete"></a>

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

Elimina el panel que coincide con el uid.

**Ejemplo de solicitud**

```
DELETE /api/dashboards/uid/cIBgcSjkk HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```

**Ejemplo de respuesta**

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

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

Códigos de estado:
+ **200**: eliminado.
+ **401**: no autorizado.
+ **403**: acceso denegado.
+ **404**: no encontrado.

## Obtención del panel de inicio
<a name="Grafana-API-Dashboard-home"></a>

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

Devuelve el panel de inicio.

**Ejemplo de solicitud**

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

**Ejemplo de respuesta**

```
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"
  }
}
```

## Obtención de etiquetas del panel
<a name="Grafana-API-Dashboard-tags"></a>

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

Devuelve todas las etiquetas de los paneles.

**Ejemplo de solicitud**

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

**Ejemplo de respuesta**

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

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