> ## 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.

# Événements Sandbox

Les événements sandbox fournissent une chronologie interrogeable des principales opérations du cycle de vie d’une sandbox. Vous pouvez utiliser les événements pour le dépannage, l’audit, l’analyse de l’utilisation et le rapprochement de facturation.

## Interroger les événements sandbox

Utilisez l’API d’événements pour lister les événements sandbox de votre compte. Vous pouvez filtrer les événements par sandbox, modèle, type d’événement, statut et plage horaire.

### Interroger les événements avec les SDK

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

### Interroger les événements d’une instance sandbox

Si vous disposez déjà d’une instance sandbox, utilisez la méthode d’événements au niveau de l’instance pour interroger les événements de cette 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>

## Filtrer les événements

Utilisez les paramètres de requête pour réduire la chronologie des événements.

| Option       | Type     | Obligatoire | Valeur par défaut / limite                        | Description                                                                                                                                           |
| ------------ | -------- | ----------- | ------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| `startTime`  | `int64`  | Non         | Par défaut : `endTime - 30 days`                  | Heure de début de la requête sous forme d’horodatage Unix en secondes. La plage est inclusive.                                                        |
| `endTime`    | `int64`  | Non         | Par défaut : l’heure actuelle                     | Heure de fin de la requête sous forme d’horodatage Unix en secondes. Doit être supérieur à `startTime`.                                               |
| `sandboxID`  | `string` | Non         | -                                                 | Filtrer par ID de sandbox. La correspondance partielle est prise en charge.                                                                           |
| `templateID` | `string` | Non         | -                                                 | Filtrer par ID de modèle. La correspondance partielle est prise en charge.                                                                            |
| `events`     | `string` | Non         | Par défaut : l’ensemble des événements clés       | Types d’événements séparés par des virgules. L’ensemble actuel des événements clés est `create`, `pause`, `resume`, `connect`, `timeout` et `delete`. |
| `state`      | `string` | Non         | -                                                 | Filtrer par statut d’événement, comme `success` ou un statut d’échec.                                                                                 |
| `orderAsc`   | `bool`   | Non         | `false`                                           | Trier les événements par `recordAt` dans l’ordre croissant. Par défaut, les événements sont renvoyés dans l’ordre décroissant.                        |
| `offset`     | `int32`  | Non         | Par défaut : `0`, minimum : `0`                   | Nombre d’événements à ignorer.                                                                                                                        |
| `limit`      | `int32`  | Non         | Par défaut : `10`, minimum : `1`, maximum : `100` | Nombre maximal d’événements à renvoyer.                                                                                                               |

<Note>
  Les champs temporels utilisent des horodatages Unix en secondes. Ne transmettez pas d’horodatages en millisecondes.

  La plage temporelle maximale d’une requête est de 60 jours. Pour des chronologies plus longues, divisez les requêtes en plusieurs plages temporelles plus petites.
</Note>

## Pagination

Les événements utilisent une pagination basée sur les décalages. Commencez avec `offset: 0` ; si `hasMore` est `true`, demandez la page suivante avec `offset + limit`. La valeur maximale de `limit` est 100.

## Champs de réponse

La réponse des événements inclut un tableau `items` et des métadonnées de pagination.

| Champ     | Description                                                                 |
| --------- | --------------------------------------------------------------------------- |
| `items`   | Liste des événements sandbox qui correspondent à la requête.                |
| `total`   | Nombre total d’événements qui correspondent à la requête, avant pagination. |
| `hasMore` | Indique si d’autres événements sont disponibles après la page actuelle.     |

Chaque élément dans `items` contient les champs suivants.

| Champ          | Description                                                                                                                 |
| -------------- | --------------------------------------------------------------------------------------------------------------------------- |
| `eventID`      | ID d’événement unique.                                                                                                      |
| `recordAt`     | Heure d’enregistrement de l’événement sous forme d’horodatage Unix en secondes.                                             |
| `templateID`   | ID du modèle utilisé par la sandbox.                                                                                        |
| `templateName` | Nom du modèle utilisé par la sandbox.                                                                                       |
| `sandboxID`    | ID de sandbox.                                                                                                              |
| `eventName`    | Type d’événement, tel que `create`, `pause`, `resume`, `connect`, `timeout` ou `delete`.                                    |
| `state`        | Statut de l’événement.                                                                                                      |
| `errorMsg`     | Message d’erreur lorsque l’événement a échoué ou a rencontré une exception. Généralement vide lorsqu’il n’y a pas d’erreur. |
| `statusCode`   | Code de statut HTTP associé à l’opération, lorsqu’il est disponible.                                                        |

## Exemple de réponse

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