

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 equipo
<a name="Grafana-API-Team"></a>

Use la API de equipo para trabajar con equipos en un espacio de trabajo de Amazon Managed Grafana. Todas las acciones de esta API requieren que tenga el rol de administrador.

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

## Búsqueda de equipos con paginación
<a name="Grafana-API-Team-Searchpaging"></a>

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

o

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

**Ejemplo de solicitud**

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

**Uso de parámetros de consulta**

El valor predeterminado del parámetro `perpage` es 1000 y el del parámetro `page` es 1.

El campo `totalCount` de la respuesta se puede utilizar para la paginación de la lista de equipos. Por ejemplo, si `totalCount` es 100 equipos y el parámetro `perpage` está establecido en 10, hay 10 páginas de equipos.

El parámetro `query` es opcional y devuelve los resultados si el valor de la consulta está incluido en el campo `name`. Los valores de consulta con espacios deben estar codificados en URL. Por ejemplo, `query=my%20team`.

**Uso del parámetro name**

El parámetro `name` devuelve un solo equipo si el parámetro coincide con el campo `name`.

**Ejemplo de respuesta**

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

Códigos de estado:
+ **200**: creado.
+ **401**: no autorizado.
+ **403**: permiso denegado.
+ **404**: no se encontró el equipo (si se busca por nombre).

## Obtención de un equipo por ID
<a name="Grafana-API-Team-getbyId"></a>

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

**Ejemplo de solicitud**

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

**Ejemplo de respuesta**

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

## Cómo agregar un equipo
<a name="Grafana-API-Team-add"></a>

El valor de `name` del equipo debe ser único. El campo `name` es obligatorio y los campos `email` y `orgId` son opcionales.

```
POST /api/teams
```

**Ejemplo de solicitud**

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

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

**Ejemplo de respuesta**

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

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

Códigos de estado:
+ **200**: creado.
+ **401**: no autorizado.
+ **403**: permiso denegado.
+ **409**: el nombre del equipo ya existe.

## Actualización de un equipo
<a name="Grafana-API-Team-update"></a>

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

Solo se pueden actualizar los campos `name` y `email`.

**Ejemplo de solicitud**

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

**Ejemplo de respuesta**

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

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

Códigos de estado:
+ **200**: creado.
+ **401**: no autorizado.
+ **403**: permiso denegado.
+ **404**: no se encontró el equipo.
+ **409**: el nombre del equipo ya existe.

## Eliminación de un equipo por ID
<a name="Grafana-API-Team-deletebyId"></a>

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

**Ejemplo de solicitud**

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

**Ejemplo de respuesta**

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

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

Códigos de estado:
+ **200**: creado.
+ **401**: no autorizado.
+ **403**: permiso denegado.
+ **404**: no se encontró el equipo.

## Obtención de los miembros de un equipo
<a name="Grafana-API-Team-getmembers"></a>

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

**Ejemplo de solicitud**

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

**Ejemplo de respuesta**

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

Códigos de estado:
+ **200**: creado.
+ **401**: no autorizado.
+ **403**: permiso denegado.

## Adición de miembro del equipo
<a name="Grafana-API-Team-addmember"></a>

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

**Ejemplo de solicitud**

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

**Ejemplo de respuesta**

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

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

Códigos de estado:
+ **200**: creado.
+ **400**: el usuario ya está en el equipo.
+ **401**: no autorizado.
+ **403**: permiso denegado.
+ **404**: no se encontró el equipo.

## Eliminación de los miembros de un equipo
<a name="Grafana-API-Team-removemember"></a>

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

**Ejemplo de solicitud**

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

**Ejemplo de respuesta**

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

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

Códigos de estado:
+ **200**: creado.
+ **401**: no autorizado.
+ **403**: permiso denegado.
+ **404** — No se encontró el equipo que no era found/team miembro

## Obtención de las preferencias de un equipo
<a name="Grafana-API-Team-getpreferences"></a>

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

**Ejemplo de solicitud**

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

**Ejemplo de respuesta**

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

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

## Actualización de las preferencias de un equipo
<a name="Grafana-API-Team-updatepreferences"></a>

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

**Ejemplo de solicitud**

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

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

Esquema de cuerpo JSON:
+ **theme**: especifique `light`, `dark` o una cadena vacía para usar el tema predeterminado.
+ **homeDashboardId**— El número `:id` de un panel de control. El valor predeterminado es 0.
+ **timezone**: especifique `utc`, `browser` o una cadena vacía para utilizar el valor predeterminado. 

Si se omite un parámetro, el valor actual se sustituye por el valor predeterminado del sistema.

**Ejemplo de respuesta**

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

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