

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 permisos de orígenes de datos
<a name="v12-Grafana-API-DatasourcePermissions"></a>

Utilice la API de permisos de orígenes de datos para habilitar, deshabilitar, enumerar, agregar y eliminar permisos para los orígenes de datos. 

Puede establecer permisos para un usuario o un equipo. Los permisos no se pueden establecer para los administradores, ya que siempre tienen acceso a todo.

Los niveles de permisos del campo de permisos son los siguientes:
+ 1 = Consulta

**nota**  
Para usar una API de Grafana con tu espacio de trabajo de Grafana gestionado por Amazon, debes tener un token de cuenta de servicio válido. Lo incluye en el campo `Authorization` de la solicitud de API.

## Habilitación de permisos para un origen de datos
<a name="v12-Grafana-API-DatasourcePermissions-enable"></a>

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

Habilita los permisos para el origen de datos con el ID indicado. Nadie, excepto los administradores de la organización, puede consultar el origen de datos hasta que se hayan agregado los permisos que dejen a determinados usuarios o equipos consultar el origen de datos.

**Ejemplo de solicitud**

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

**Ejemplo de respuesta**

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

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

Códigos de estado:
+ **200**: creado.
+ **400**: no se pueden habilitar los permisos; consulte el cuerpo de la respuesta para obtener más información.
+ **401**: no autorizado.
+ **403**: acceso denegado.
+ **404**: no se encontró el origen de datos.

## Deshabilitación de permisos para un origen de datos
<a name="v12-Grafana-API-DatasourcePermissions-disable"></a>

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

Deshabilita los permisos para el origen de datos con el ID indicado. Se eliminan todos los permisos existentes y cualquier persona puede consultar el origen de datos.

**Ejemplo de solicitud**

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

{}
```

**Ejemplo de respuesta**

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

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

Códigos de estado:
+ **200**: correcto.
+ **400**: no se pueden deshabilitar los permisos; consulte el cuerpo de la respuesta para obtener más información.
+ **401**: no autorizado.
+ **403**: acceso denegado.
+ **404**: no se encontró el origen de datos.

## Obtención de permisos para un origen de datos
<a name="v12-Grafana-API-DatasourcePermissions-get"></a>

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

Obtiene los permisos para el origen de datos con el `id` indicado.

**Ejemplo de solicitud**

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

**Ejemplo de respuesta**

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

Códigos de estado:
+ **200**: correcto.
+ **401**: no autorizado.
+ **403**: acceso denegado.
+ **404**: no se encontró el origen de datos.

## Cómo agregar permisos para un origen de datos
<a name="v12-Grafana-API-DatasourcePermissions-add"></a>

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

Agrega un permiso de usuario para el origen de datos con el `id` indicado.

**Ejemplo de solicitud para agregar un permiso de usuario**

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

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

**Ejemplo de respuesta para agregar un permiso de usuario**

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

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

**Ejemplo de solicitud para agregar un permiso de equipo**

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

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

**Ejemplo de respuesta para agregar un permiso de equipo**

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

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

Códigos de estado:
+ **200**: correcto.
+ **400**: no se puede agregar el permiso; consulte el cuerpo de la respuesta para obtener más información.
+ **401**: no autorizado.
+ **403**: acceso denegado.
+ **404**: no se encontró el origen de datos.

## Eliminación de permisos para un origen de datos
<a name="v12-Grafana-API-DatasourcePermissions-remove"></a>

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

Elimina el permiso con el valor de permissionId proporcionado para el origen de datos con el `id` indicado.

**Ejemplo de solicitud**

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

**Ejemplo de respuesta**

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

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

Códigos de estado:
+ **200**: correcto.
+ **401**: no autorizado.
+ **403**: acceso denegado.
+ **404**: no se encontró el origen de datos o el permiso.