> ## Documentation Index
> Fetch the complete documentation index at: https://novita.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Eventos de Sandbox

Eventos de sandbox fornecem uma linha do tempo consultável das principais operações do ciclo de vida do sandbox. Você pode usar eventos para solução de problemas, auditoria, análise de uso e reconciliação de cobrança.

## Consultar eventos de sandbox

Use a API de eventos para listar eventos de sandbox da sua conta. Você pode filtrar eventos por sandbox, template, tipo de evento, status e intervalo de tempo.

### Consultar eventos usando os SDKs

<CodeGroup>
  ```js JavaScript & TypeScript icon="js" theme={"system"}
  import { Sandbox } from 'novita-sandbox'

  const result = await Sandbox.getEvents({
    sandboxID: 'iq721h44siv24wmyrh5oc',
    events: ['create', 'pause', 'resume', 'connect', 'timeout', 'delete'],
    limit: 10,
    offset: 0,
  })

  console.log('Events:', result.items)

  if (result.hasMore) {
    const nextPage = await Sandbox.getEvents({
      sandboxID: 'iq721h44siv24wmyrh5oc',
      limit: 10,
      offset: 10,
    })

    console.log('Next page:', nextPage.items)
  }
  ```

  ```python Python icon="python" theme={"system"}
  from novita_sandbox.core import Sandbox

  result = Sandbox.get_events(
      sandbox_id="iq721h44siv24wmyrh5oc",
      events=["create", "pause", "resume", "connect", "timeout", "delete"],
      limit=10,
      offset=0,
  )

  print("Events:", result.items)

  if result.has_more:
      next_page = Sandbox.get_events(
          sandbox_id="iq721h44siv24wmyrh5oc",
          limit=10,
          offset=10,
      )

      print("Next page:", next_page.items)
  ```
</CodeGroup>

### Consultar eventos de uma instância de sandbox

Se você já tiver uma instância de sandbox, use o método de eventos no nível da instância para consultar eventos desse sandbox.

<CodeGroup>
  ```js JavaScript & TypeScript icon="js" theme={"system"}
  import { Sandbox } from 'novita-sandbox'

  const sandbox = await Sandbox.create()
  const result = await sandbox.getEvents({
    events: ['create', 'pause', 'resume', 'connect', 'timeout', 'delete'],
    limit: 10,
  })

  console.log(result.items)
  ```

  ```python Python icon="python" theme={"system"}
  from novita_sandbox.core import Sandbox

  sandbox = Sandbox.create()
  result = sandbox.get_events(
      events=["create", "pause", "resume", "connect", "timeout", "delete"],
      limit=10,
  )

  print(result.items)
  ```
</CodeGroup>

## Filtrar eventos

Use parâmetros de consulta para restringir a linha do tempo de eventos.

| Opção        | Tipo     | Obrigatório | Padrão / Limite                            | Descrição                                                                                                                                |
| ------------ | -------- | ----------- | ------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------- |
| `startTime`  | `int64`  | Não         | O padrão é `endTime - 30 days`             | Hora de início da consulta como um timestamp Unix em segundos. O intervalo é inclusivo.                                                  |
| `endTime`    | `int64`  | Não         | O padrão é a hora atual                    | Hora de término da consulta como um timestamp Unix em segundos. Deve ser maior que `startTime`.                                          |
| `sandboxID`  | `string` | Não         | -                                          | Filtrar por ID do sandbox. Há suporte a correspondência parcial.                                                                         |
| `templateID` | `string` | Não         | -                                          | Filtrar por ID do template. Há suporte a correspondência parcial.                                                                        |
| `events`     | `string` | Não         | Usa por padrão o conjunto de eventos-chave | Tipos de evento separados por vírgula. O conjunto atual de eventos-chave é `create`, `pause`, `resume`, `connect`, `timeout` e `delete`. |
| `state`      | `string` | Não         | -                                          | Filtrar por status do evento, como `success` ou um status de falha.                                                                      |
| `orderAsc`   | `bool`   | Não         | `false`                                    | Classificar eventos por `recordAt` em ordem crescente. Por padrão, os eventos são retornados em ordem decrescente.                       |
| `offset`     | `int32`  | Não         | Padrão `0`, mínimo `0`                     | Número de eventos a ignorar.                                                                                                             |
| `limit`      | `int32`  | Não         | Padrão `10`, mínimo `1`, máximo `100`      | Número máximo de eventos a retornar.                                                                                                     |

<Note>
  Campos de tempo usam timestamps Unix em segundos. Não passe timestamps em milissegundos.

  O intervalo máximo de tempo da consulta é de 60 dias. Para linhas do tempo mais longas, divida as solicitações em vários intervalos de tempo menores.
</Note>

## Paginação

Eventos usam paginação baseada em deslocamento. Comece com `offset: 0`; se `hasMore` for `true`, solicite a próxima página com `offset + limit`. O `limit` máximo é 100.

## Campos da resposta

A resposta de eventos inclui um array `items` e metadados de paginação.

| Campo     | Descrição                                                                |
| --------- | ------------------------------------------------------------------------ |
| `items`   | Lista de eventos de sandbox que correspondem à consulta.                 |
| `total`   | Número total de eventos que correspondem à consulta, antes da paginação. |
| `hasMore` | Se há mais eventos disponíveis após a página atual.                      |

Cada item em `items` tem os seguintes campos.

| Campo          | Descrição                                                                                                   |
| -------------- | ----------------------------------------------------------------------------------------------------------- |
| `eventID`      | ID exclusivo do evento.                                                                                     |
| `recordAt`     | Hora de registro do evento como um timestamp Unix em segundos.                                              |
| `templateID`   | ID do template usado pelo sandbox.                                                                          |
| `templateName` | Nome do template usado pelo sandbox.                                                                        |
| `sandboxID`    | ID do sandbox.                                                                                              |
| `eventName`    | Tipo de evento, como `create`, `pause`, `resume`, `connect`, `timeout` ou `delete`.                         |
| `state`        | Status do evento.                                                                                           |
| `errorMsg`     | Mensagem de erro quando o evento falhou ou encontrou uma exceção. Geralmente fica vazia quando não há erro. |
| `statusCode`   | Código de status HTTP associado à operação, quando disponível.                                              |

## Exemplo de resposta

```json theme={"system"}
{
  "items": [
    {
      "eventID": "evt_123",
      "recordAt": 1766650000,
      "templateID": "tmpl_abc",
      "templateName": "ubuntu-base",
      "sandboxID": "i3vrzzatkxojecvfuesnz",
      "eventName": "create",
      "state": "success",
      "errorMsg": "",
      "statusCode": 200
    }
  ],
  "total": 1,
  "hasMore": false
}
```
