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

# SandboxDefaults

> Valeurs de configuration par défaut immuables pour la création de sandboxes.

Source : [src/cwsandbox/\_defaults.py:261](https://github.com/coreweave/cwsandbox-client/blob/v1.14.2/src/cwsandbox/_defaults.py#L261)

```python theme={"system"}
class SandboxDefaults(container_image: str = DEFAULT_CONTAINER_IMAGE, command: str = DEFAULT_COMMAND, args: tuple[str, ...] = DEFAULT_ARGS, base_url: str = DEFAULT_BASE_URL, auth: AuthConfig | None = None, request_timeout_seconds: float = DEFAULT_REQUEST_TIMEOUT_SECONDS, poll_retry_budget_seconds: float = DEFAULT_POLL_RETRY_BUDGET_SECONDS, poll_rpc_timeout_seconds: float = DEFAULT_POLL_RPC_TIMEOUT_SECONDS, max_lifetime_seconds: float | None = DEFAULT_MAX_LIFETIME_SECONDS, temp_dir: str = DEFAULT_TEMP_DIR, tags: tuple[str, ...] = tuple(), runner_ids: tuple[str, ...] | None = None, placement_mode: PlacementMode | str | None = None, placement_spillover: PlacementSpillover | str = PlacementSpillover.STRICT, resources: ResourceOptions | dict[str, Any] | None = None, network: NetworkOptions | None = None, services: tuple[Service, ...] | None = None, volumes: tuple[ScratchVolumeOptions | RegisteredVolumeOptions, ...] | None = None, runtime_class: str | None = None, security_context: SecurityContext | dict[str, Any] | None = None, working_dir: str | None = None, object_storage_access: ObjectStorageAccess | dict[str, Any] | None = None, file_system_snapshot: FileSystemSnapshotOptions | dict[str, Any] | None = None, containers: tuple[Container, ...] | None = None, secrets: tuple[Secret, ...] | None = None, environment_variables: dict[str, str] = dict(), annotations: dict[str, str] = dict(), data_plane_mode: DataPlaneMode | str = DataPlaneMode.AUTO)
```

Valeurs de configuration par défaut immuables pour la création de sandbox.

Tous les champs disposent de valeurs par défaut pertinentes. Ne remplacez que ce qui est nécessaire.

Il existe deux notions distinctes de délai d’expiration :

* request\_timeout\_seconds : durée d’attente des réponses de l’API (côté client)
* max\_lifetime\_seconds : durée d’exécution de la sandbox avant son arrêt automatique (côté serveur)
  Si cette valeur n’est pas définie, c’est le backend qui détermine la durée de vie par défaut.

Les tags permettent de filtrer et d’organiser les bacs à sable. Ils sont propagés
au backend et peuvent servir à interroger les bacs à sable par tag.

**Attributs**

* `container_image` (`str`) : image Docker du conteneur de la sandbox. Par défaut : `DEFAULT_CONTAINER_IMAGE`.
* `command` (`str`) : commande de point d’entrée à exécuter. Par défaut : `DEFAULT_COMMAND`.
* `args` (`tuple[str, ...]`) : arguments transmis à la commande. Par défaut : `DEFAULT_ARGS`.
* `base_url` (`str`) : URL de l’API endpoint CWSandbox. Par défaut : `DEFAULT_BASE_URL`.
* `auth` (`AuthConfig | None`) : choix du mode d’authentification. Accepte un `AuthStrategy`, des
  `AuthHeaders` résolus ou un `AuthProvider`. `None` conserve un
  remplacement hérité global au processus s’il est installé, et utilise sinon
  `AuthStrategy.COREWEAVE_API_KEY`. Par défaut : `field(default=None, repr=False)`.
* `request_timeout_seconds` (`float`) : délai d’expiration HTTP côté client, en secondes, pour la plupart
  des RPC. Les RPC Get d’interrogation utilisent à la place `poll_rpc_timeout_seconds`. Par défaut : `DEFAULT_REQUEST_TIMEOUT_SECONDS`.
* `poll_retry_budget_seconds` (`float`) : budget en temps réel par série de nouvelles tentatives (un cycle
  jusqu’à un statut stable). Le budget est réinitialisé à chaque réponse réussie :
  ainsi, une sandbox de longue durée qui rencontre une erreur transitoire, se rétablit, puis
  en rencontre une autre bien plus tard, dispose à chaque fois d’un nouveau budget. Les codes
  transitoires donnant lieu à une nouvelle tentative sont UNAVAILABLE, DEADLINE\_EXCEEDED et
  RESOURCE\_EXHAUSTED. Définissez la valeur sur 0.0 pour désactiver complètement les nouvelles tentatives. Par défaut : `DEFAULT_POLL_RETRY_BUDGET_SECONDS`.
* `poll_rpc_timeout_seconds` (`float`) : délai d’expiration par appel pour les RPC Get d’interrogation. Distinct
  de `request_timeout_seconds` afin qu’une interrogation bloquée échoue
  rapidement au lieu d’attendre l’expiration du délai global de la requête. Par défaut : `DEFAULT_POLL_RPC_TIMEOUT_SECONDS`.
* `max_lifetime_seconds` (`float | None`) : durée de vie maximale de la sandbox côté serveur, en secondes.
  None laisse le backend définir la valeur par défaut. Par défaut : `DEFAULT_MAX_LIFETIME_SECONDS`.
* `temp_dir` (`str`) : chemin du répertoire temporaire dans la sandbox. Par défaut : `DEFAULT_TEMP_DIR`.
* `tags` (`tuple[str, ...]`) : étiquettes permettant de filtrer et d’organiser les bacs à sable. Par défaut : `field(default_factory=tuple)`.
* `runner_ids` (`tuple[str, ...] | None`) : limite l’exécution à certains ID d’exécuteurs (CKS). Transmettez une liste vide pour
  effacer explicitement toute valeur par défaut ; transmettez None (valeur par défaut) pour hériter
  de la valeur par défaut configurée, le cas échéant. Incompatible avec le placement sans serveur.
* `placement_mode` (`PlacementMode | str | None`) : `PlacementMode` (`serverless` / `cks`) ou chaîne.
* `placement_spillover` (`PlacementSpillover | str`) : politique `PlacementSpillover` régissant une nouvelle tentative unique
  de création dans l’autre mode lorsque le mode principal échoue pour un motif
  de capacité ou de placement autorisant le débordement. Valeur par défaut : `STRICT` (aucun débordement). Les bacs à sable
  issus d’un modèle exigent `STRICT`. Par défaut : `PlacementSpillover.STRICT`.
* `resources` (`ResourceOptions | dict[str, Any] | None`) : configuration des ressources. Accepte `ResourceOptions` pour définir séparément
  demandes de ressources et limites, ou un dict plat pour une QoS Guaranteed rétrocompatible.
* `network` (`NetworkOptions | None`) : options réseau à indicateurs de refus et autorisations facultatives de noms d’hôte
  à la création via `NetworkOptions`.
* `services` (`tuple[Service, ...] | None`) : ports de service typés (`Service`) pour PUBLIC/PRIVATE/CUSTOM.
* `volumes` (`tuple[ScratchVolumeOptions | RegisteredVolumeOptions, ...] | None`) : volumes temporaires ou enregistrés (`ScratchVolumeOptions` ou
  `RegisteredVolumeOptions`).
* `runtime_class` (`str | None`) : épinglage facultatif de la classe de runtime (par exemple `"gvisor"`).
* `security_context` (`SecurityContext | dict[str, Any] | None`) : privilèges dans l’invité pour le mode à conteneur unique.
  Non appliqué lorsque `containers=` ou `defaults.containers` est utilisé.
* `working_dir` (`str | None`) : répertoire de travail pour le mode à conteneur unique.
  Non appliqué lorsqu’une liste de conteneurs est utilisée.
* `object_storage_access` (`ObjectStorageAccess | dict[str, Any] | None`) : identifiants d’authentification temporaires pour le stockage objet.
* `file_system_snapshot` (`FileSystemSnapshotOptions | dict[str, Any] | None`) : raccourci pour définir les options FSS d’un montage unique via
  `FileSystemSnapshotOptions`. Valeurs par défaut de montage partageables (mount\_path,
  size) ; une valeur `run()` explicite les remplace intégralement. Privilégiez
  `volumes=` pour les configurations à plusieurs volumes.
* `containers` (`tuple[Container, ...] | None`) : spécification multiconteneur facultative (`Container`). Mutuellement
  exclusive avec les champs mono-conteneur de `Sandbox.run()`.
  Lorsque cette liste est utilisée, les champs `secrets`, `environment_variables`,
  `security_context` et `working_dir` de ces valeurs par défaut
  ne sont pas appliqués ; définissez-les sur chaque `Container`.
* `secrets` (`tuple[Secret, ...] | None`) : secrets pour le mode mono-conteneur. Non appliqués lorsque
  `containers=` ou `defaults.containers` est utilisé.
* `environment_variables` (`dict[str, str]`) : variables d’environnement pour le mode
  mono-conteneur. Non appliquées lorsqu’une liste de conteneurs est utilisée. Par défaut : `field(default_factory=dict)`.
* `annotations` (`dict[str, str]`) : annotations de pod Kubernetes (paires clé-valeur de type chaîne).
  Fusionnées avec les annotations propres à chaque sandbox ; les valeurs explicites remplacent les valeurs par défaut.
  À réserver aux métadonnées non sensibles. Par défaut : `field(default_factory=dict)`.
* `data_plane_mode` (`DataPlaneMode | str`) : politique de transport pour l’exécution, les journaux et les opérations sur les fichiers.
  `auto` (par défaut) privilégie le mTLS direct et se rabat sur la passerelle en cas d’échec ;
  `gateway` désactive l’accès direct ; `direct` l’impose. Par défaut : `DataPlaneMode.AUTO`.

<h2 id="methods">
  Méthodes
</h2>

<h3 id="merge_tags">
  merge\_tags
</h3>

```python theme={"system"}
merge_tags(additional: Iterable[str] | None) -> list[str]
```

Combine les tags par défaut avec des tags supplémentaires.

Les tags des deux sources sont inclus, dans l’ordre suivant : d’abord les valeurs par défaut,
puis les tags supplémentaires, ajoutés à la suite.

<h3 id="merge_environment_variables">
  merge\_environment\_variables
</h3>

```python theme={"system"}
merge_environment_variables(additional: dict[str, str] | None) -> dict[str, str]
```

Combine les variables d’environnement par défaut avec des variables supplémentaires.

Les variables d’environnement supplémentaires remplacent les valeurs par défaut qui ont la même clé.

<h3 id="merge_annotations">
  merge\_annotations
</h3>

```python theme={"system"}
merge_annotations(additional: dict[str, str] | None) -> dict[str, str]
```

Combine les annotations par défaut avec des annotations supplémentaires.

Les annotations supplémentaires remplacent les valeurs par défaut ayant la même clé.

<h3 id="with_overrides">
  with\_overrides
</h3>

```python theme={"system"}
with_overrides(**kwargs: Any = {}) -> SandboxDefaults
```

Crée de nouvelles valeurs par défaut dont certaines sont remplacées.

<h3 id="from_dict">
  from\_dict
</h3>

```python theme={"system"}
from_dict(d: Mapping[str, Any] | None) -> SandboxDefaults
```

Construit `SandboxDefaults` à partir d’un mappage, en convertissant les champs imbriqués.

Accepte des dictionnaires standard ou des objets OmegaConf `DictConfig`.  Les clés
inconnues sont ignorées sans avertissement, ce qui permet aux appelants de transmettre une section de configuration
pouvant contenir des champs supplémentaires.

Conversions appliquées :

* `network` dict -> `NetworkOptions`
* `secrets` liste de dicts -> tuple de `Secret`
* `services` liste de dicts -> tuple de `Service`
* `volumes` liste de dicts -> tuple d’options de volumes temporaires/enregistrés
* `containers` liste de dicts -> tuple de `Container`
* `security_context` dict -> `SecurityContext`
* `object_storage_access` dict -> `ObjectStorageAccess`
* listes `args`, `tags`, `runner_ids`, `services`, `volumes`,
  `containers` -> tuples
* `resources`, `environment_variables` -> `dict` standard
