> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/dsx-air/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/dsx-air/_mcp/server.

# air_sdk.types

## Attributes

| Name                                            |
| ----------------------------------------------- |
| [`T`](#air_sdktypest)                           |
| [`UserConfigType`](#air_sdktypesuserconfigtype) |

## Classes

| Name                                                              | Description                                             |
| ----------------------------------------------------------------- | ------------------------------------------------------- |
| [`SimState`](#air_sdktypessimstate)                               | Simulation state constants.                             |
| [`DockerRunTmpfsParameter`](#air_sdktypesdockerruntmpfsparameter) | Docker tmpfs mount configuration.                       |
| [`DockerRunParameters`](#air_sdktypesdockerrunparameters)         | Docker run parameters for simulator containers.         |
| [`Resources`](#air_sdktypesresources)                             | Resource overhead for a simulator/platform.             |
| [`Platform`](#air_sdktypesplatform)                               | Emulated platform configuration.                        |
| [`EmulationParams`](#air_sdktypesemulationparams)                 | Emulation parameters for a simulator/platform.          |
| [`NodeAssignmentDataV2`](#air_sdktypesnodeassignmentdatav2)       | v2 bulk assignment payload format.                      |
| [`NodeAssignmentDataV3`](#air_sdktypesnodeassignmentdatav3)       | v3 bulk assignment payload format.                      |
| [`NodeResetPayload`](#air_sdktypesnoderesetpayload)               | Payload for resetting a node.                           |
| [`NodeRebuildPayload`](#air_sdktypesnoderebuildpayload)           | Payload for rebuilding a node.                          |
| [`ResourceBudgetUsage`](#air_sdktypesresourcebudgetusage)         | Current resource usage within an organization's budget. |

## Functions

| Name                                                                      | Description                                                               |
| ------------------------------------------------------------------------- | ------------------------------------------------------------------------- |
| [`is_typeddict`](#air_sdktypesis_typeddict)(→ bool)                       | None                                                                      |
| [`union_args_are_optional`](#air_sdktypesunion_args_are_optional)(→ bool) | None                                                                      |
| [`is_union`](#air_sdktypesis_union)(→ bool)                               | None                                                                      |
| [`is_optional_union`](#air_sdktypesis_optional_union)(→ bool)             | None                                                                      |
| [`get_optional_arg`](#air_sdktypesget_optional_arg)(→ Type\[T])           | None                                                                      |
| [`get_list_arg`](#air_sdktypesget_list_arg)(→ Type\[T])                   | None                                                                      |
| [`is_typed_dict`](#air_sdktypesis_typed_dict)(→ bool)                     | Determine if the `expected_type` provided is a subclass of TypedDict.     |
| [`type_check_typed_dict`](#air_sdktypestype_check_typed_dict)(→ bool)     | Perform type checking when the expected\_type is a subclass of TypedDict. |
| [`type_check`](#air_sdktypestype_check)(→ bool)                           | Recursively check if the value matches the expected type.                 |

## Module Contents

```python
T = TypeVar(...)
```

```python
class air_sdk.types.SimState
```

**Bases**: `str`, `enum.Enum`

Simulation state constants.

Use these instead of raw strings for type safety and IDE autocomplete.

**Example:**

```python
>>> from air_sdk import SimState
>>> while sim.state != SimState.ACTIVE:
...     sleep(5)
...     sim.refresh()
```

```python
CLONING = CLONING
```

```python
CREATING = CREATING
```

```python
IMPORTING = IMPORTING
```

```python
INVALID = INVALID
```

```python
INACTIVE = INACTIVE
```

```python
REQUESTING = REQUESTING
```

```python
PROVISIONING = PROVISIONING
```

```python
PREPARE_BOOT = PREPARE_BOOT
```

```python
BOOTING = BOOTING
```

```python
ACTIVE = ACTIVE
```

```python
PREPARE_SHUTDOWN = PREPARE_SHUTDOWN
```

```python
SHUTTING_DOWN = SHUTTING_DOWN
```

```python
SAVING = SAVING
```

```python
PREPARE_TEARDOWN = PREPARE_TEARDOWN
```

```python
TEARING_DOWN = TEARING_DOWN
```

```python
DELETING = DELETING
```

```python
PREPARE_PURGE = PREPARE_PURGE
```

```python
PURGING = PURGING
```

```python
DEMO = DEMO
```

```python
TRAINING = TRAINING
```

```python
PREPARE_REBUILD = PREPARE_REBUILD
```

```python
REBUILDING = REBUILDING
```

```python
class air_sdk.types.DockerRunTmpfsParameter
```

**Bases**: `typing.TypedDict`

Docker tmpfs mount configuration.

```python
path: str
```

```python
size_gb: int
```

```python
class air_sdk.types.DockerRunParameters
```

**Bases**: `typing.TypedDict`

Docker run parameters for simulator containers.

```python
tmpfs: list[DockerRunTmpfsParameter]
```

```python
cap_add: list[str]
```

```python
devices: list[str]
```

```python
volumes: list[str]
```

```python
environment: dict[str, str]
```

```python
class air_sdk.types.Resources
```

**Bases**: `typing.TypedDict`

Resource overhead for a simulator/platform.

```python
cpu: int
```

```python
memory: int
```

```python
class air_sdk.types.Platform
```

**Bases**: `typing.TypedDict`

Emulated platform configuration.

```python
cpu: int
```

```python
memory: int
```

```python
default_port_type: str
```

```python
default_port_count: int
```

```python
port_count_options: list[int]
```

```python
class air_sdk.types.EmulationParams
```

**Bases**: `typing.TypedDict`

Emulation parameters for a simulator/platform.

```python
direct_link_emulation: bool
```

```python
max_network_pci: int
```

```python
UserConfigType
```

```python
class air_sdk.types.NodeAssignmentDataV2
```

**Bases**: `typing.TypedDict`

v2 bulk assignment payload format.

```python
simulation_node: Union[Node, PrimaryKey]
```

```python
user_data: UserConfigType
```

```python
meta_data: UserConfigType
```

```python
class air_sdk.types.NodeAssignmentDataV3
```

**Bases**: `typing.TypedDict`

v3 bulk assignment payload format.

```python
node: Node | PrimaryKey
```

```python
user_data: UserConfig | PrimaryKey | None
```

```python
meta_data: UserConfig | PrimaryKey | None
```

```python
class air_sdk.types.NodeResetPayload
```

**Bases**: `typing.TypedDict`

Payload for resetting a node.

```python
id: Node | PrimaryKey
```

```python
class air_sdk.types.NodeRebuildPayload
```

**Bases**: `typing.TypedDict`

Payload for rebuilding a node.

```python
id: Node | PrimaryKey
```

```python
class air_sdk.types.ResourceBudgetUsage
```

**Bases**: `typing.TypedDict`

Current resource usage within an organization's budget.

```python
cpu: float
```

Number of CPU cores currently in use

```python
memory: float
```

Memory currently in use, in MiB

```python
disk_storage: float
```

Disk storage currently in use, in GB

```python
image_storage: int
```

Image storage currently in use, in GB

```python
userconfigs: int
```

User configs content currently in use, in bytes

```python
air_sdk.types.is_typeddict(type_: Type[Any]) -> bool
```

```python
air_sdk.types.union_args_are_optional(args: Tuple[Union[Any, Any], ...]) -> bool
```

```python
air_sdk.types.is_union(type_: Type[Any]) -> bool
```

```python
air_sdk.types.is_optional_union(type_: Type[Any]) -> bool
```

```python
air_sdk.types.get_optional_arg(optional_type: Type[T | None]) -> Type[T]
```

```python
air_sdk.types.get_list_arg(list_type: Type[List[T]]) -> Type[T]
```

```python
air_sdk.types.is_typed_dict(expected_type: Type[Any]) -> bool
```

Determine if the `expected_type` provided is a subclass of TypedDict.

```python
air_sdk.types.type_check_typed_dict(
    value: Any,
    expected_type: Type[Any]
) -> bool
```

Perform type checking when the expected\_type is a subclass of TypedDict.

This currently does not work if the expected\_type is also a dataclass.

```python
air_sdk.types.type_check(
    value: Any,
    expected_type: Type[Any]
) -> bool
```

Recursively check if the value matches the expected type.