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

# nemo_gym.config_types

## Module Contents

### Classes

| Name                                                                                                                      | Description                                                                                             |
| ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
| [`AgentCompositionError`](#nemo_gym-config_types-AgentCompositionError)                                                   | A standalone agent config could not be composed onto the merged config's agent instances.               |
| [`AgentServerRef`](#nemo_gym-config_types-AgentServerRef)                                                                 | -                                                                                                       |
| [`AgentWithoutEnvironmentServerError`](#nemo_gym-config_types-AgentWithoutEnvironmentServerError)                         | An agent instance has no environment server.                                                            |
| [`AggregateMetrics`](#nemo_gym-config_types-AggregateMetrics)                                                             | Response from /aggregate\_metrics.                                                                      |
| [`AggregateMetricsRequest`](#nemo_gym-config_types-AggregateMetricsRequest)                                               | POST body for /aggregate\_metrics.                                                                      |
| [`AlmostServerError`](#nemo_gym-config_types-AlmostServerError)                                                           | One or more server blocks are almost-servers (right shape, failed validation) and                       |
| [`AmbiguousEnvironmentServerError`](#nemo_gym-config_types-AmbiguousEnvironmentServerError)                               | Rows route by an agent that more than one environment server fronts.                                    |
| [`BaseNeMoGymCLIConfig`](#nemo_gym-config_types-BaseNeMoGymCLIConfig)                                                     | -                                                                                                       |
| [`BaseRunServerConfig`](#nemo_gym-config_types-BaseRunServerConfig)                                                       | -                                                                                                       |
| [`BaseRunServerInstanceConfig`](#nemo_gym-config_types-BaseRunServerInstanceConfig)                                       | -                                                                                                       |
| [`BaseRunServerTypeConfig`](#nemo_gym-config_types-BaseRunServerTypeConfig)                                               | -                                                                                                       |
| [`BaseServerConfig`](#nemo_gym-config_types-BaseServerConfig)                                                             | -                                                                                                       |
| [`BaseServerInstanceConfig`](#nemo_gym-config_types-BaseServerInstanceConfig)                                             | -                                                                                                       |
| [`BaseServerTypeConfig`](#nemo_gym-config_types-BaseServerTypeConfig)                                                     | -                                                                                                       |
| [`BaseUploadJsonlDatasetHuggingFaceConfig`](#nemo_gym-config_types-BaseUploadJsonlDatasetHuggingFaceConfig)               | Upload a JSONL dataset to HuggingFace Hub with automatic naming based on domain and resources server.   |
| [`BenchmarkDatasetConfig`](#nemo_gym-config_types-BenchmarkDatasetConfig)                                                 | -                                                                                                       |
| [`ConfigError`](#nemo_gym-config_types-ConfigError)                                                                       | Base for user-facing configuration errors.                                                              |
| [`ConfigInterpolationError`](#nemo_gym-config_types-ConfigInterpolationError)                                             | An `$&#123;...&#125;` interpolation references a key that is not present in the merged config.          |
| [`ConfigMissingValuesError`](#nemo_gym-config_types-ConfigMissingValuesError)                                             | One or more required config values are still unset (OmegaConf '???') after merging.                     |
| [`ConfigPathNotFoundError`](#nemo_gym-config_types-ConfigPathNotFoundError)                                               | A `config_paths` entry could not be found in the cwd or the Gym install location.                       |
| [`DatasetConfig`](#nemo_gym-config_types-DatasetConfig)                                                                   | -                                                                                                       |
| [`DeleteJsonlDatasetGitlabConfig`](#nemo_gym-config_types-DeleteJsonlDatasetGitlabConfig)                                 | Delete a dataset from GitLab Model Registry (prompts for confirmation).                                 |
| [`Domain`](#nemo_gym-config_types-Domain)                                                                                 | The capability a resources server primarily evaluates or trains.                                        |
| [`DownloadJsonlDatasetGitlabConfig`](#nemo_gym-config_types-DownloadJsonlDatasetGitlabConfig)                             | Download a JSONL dataset from GitLab Model Registry.                                                    |
| [`DownloadJsonlDatasetHuggingFaceConfig`](#nemo_gym-config_types-DownloadJsonlDatasetHuggingFaceConfig)                   | Download a JSONL dataset from HuggingFace Hub to local filesystem.                                      |
| [`EnvironmentServerInstanceConfig`](#nemo_gym-config_types-EnvironmentServerInstanceConfig)                               | -                                                                                                       |
| [`EnvironmentServerRef`](#nemo_gym-config_types-EnvironmentServerRef)                                                     | -                                                                                                       |
| [`EnvironmentServerTypeConfig`](#nemo_gym-config_types-EnvironmentServerTypeConfig)                                       | -                                                                                                       |
| [`ExporterConfig`](#nemo_gym-config_types-ExporterConfig)                                                                 | Credentials and run identity for one exporter backend.                                                  |
| [`GitlabDatasetSource`](#nemo_gym-config_types-GitlabDatasetSource)                                                       | Unified `source:` for a dataset fetched from the GitLab model registry.                                 |
| [`HuggingFaceDatasetSource`](#nemo_gym-config_types-HuggingFaceDatasetSource)                                             | Unified `source:` for a dataset fetched from the HuggingFace Hub.                                       |
| [`InheritPathNotFoundError`](#nemo_gym-config_types-InheritPathNotFoundError)                                             | An `_inherit_from` / swap / copy directive references a config path that does not exist.                |
| [`JsonlDatasetGitlabIdentifer`](#nemo_gym-config_types-JsonlDatasetGitlabIdentifer)                                       | -                                                                                                       |
| [`JsonlDatasetHuggingFaceIdentifer`](#nemo_gym-config_types-JsonlDatasetHuggingFaceIdentifer)                             | -                                                                                                       |
| [`MLFlowConfig`](#nemo_gym-config_types-MLFlowConfig)                                                                     | Also used for the GitLab model registry, which needs only the URI and token.                            |
| [`MalformedConfigPathsError`](#nemo_gym-config_types-MalformedConfigPathsError)                                           | `config_paths` was not a list of paths (e.g. a scalar string was passed).                               |
| [`ModelServerRef`](#nemo_gym-config_types-ModelServerRef)                                                                 | -                                                                                                       |
| [`NoServerInstancesError`](#nemo_gym-config_types-NoServerInstancesError)                                                 | A run was requested but the merged config defines no server instances to start.                         |
| [`ResourcesServerInstanceConfig`](#nemo_gym-config_types-ResourcesServerInstanceConfig)                                   | -                                                                                                       |
| [`ResourcesServerRef`](#nemo_gym-config_types-ResourcesServerRef)                                                         | -                                                                                                       |
| [`ResourcesServerTypeConfig`](#nemo_gym-config_types-ResourcesServerTypeConfig)                                           | -                                                                                                       |
| [`ResponsesAPIAgentServerInstanceConfig`](#nemo_gym-config_types-ResponsesAPIAgentServerInstanceConfig)                   | -                                                                                                       |
| [`ResponsesAPIAgentServerTypeConfig`](#nemo_gym-config_types-ResponsesAPIAgentServerTypeConfig)                           | -                                                                                                       |
| [`ResponsesAPIModelServerInstanceConfig`](#nemo_gym-config_types-ResponsesAPIModelServerInstanceConfig)                   | -                                                                                                       |
| [`ResponsesAPIModelServerTypeConfig`](#nemo_gym-config_types-ResponsesAPIModelServerTypeConfig)                           | -                                                                                                       |
| [`ServerRefNotFoundError`](#nemo_gym-config_types-ServerRefNotFoundError)                                                 | A server cross-reference points to an instance that is not defined in the merged config.                |
| [`UnsupportedAgentOverrideError`](#nemo_gym-config_types-UnsupportedAgentOverrideError)                                   | A command line override configures an agent that no instance ends up running.                           |
| [`UnsupportedAgentPairingError`](#nemo_gym-config_types-UnsupportedAgentPairingError)                                     | The selected agent is not one the environment's resources server declares support for.                  |
| [`UnsupportedModelPairingError`](#nemo_gym-config_types-UnsupportedModelPairingError)                                     | The selected model server is not one the environment's resources server declares support for.           |
| [`UploadJsonlDatasetGitlabConfig`](#nemo_gym-config_types-UploadJsonlDatasetGitlabConfig)                                 | Upload a local jsonl dataset artifact to Gitlab.                                                        |
| [`UploadJsonlDatasetHuggingFaceConfig`](#nemo_gym-config_types-UploadJsonlDatasetHuggingFaceConfig)                       | Upload a JSONL dataset to HuggingFace Hub and automatically delete from GitLab after successful upload. |
| [`UploadJsonlDatasetHuggingFaceMaybeDeleteConfig`](#nemo_gym-config_types-UploadJsonlDatasetHuggingFaceMaybeDeleteConfig) | Upload a JSONL dataset to HuggingFace Hub with optional GitLab deletion after successful upload.        |
| [`UploadRolloutsConfigMixin`](#nemo_gym-config_types-UploadRolloutsConfigMixin)                                           | `upload_rollouts` plus back-compat for the W\&B-specific name it replaced.                              |
| [`WANDBConfig`](#nemo_gym-config_types-WANDBConfig)                                                                       | -                                                                                                       |

### Functions

| Name                                                                                          | Description                                                                       |
| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
| [`is_almost_server`](#nemo_gym-config_types-is_almost_server)                                 | Detects if a config looks like a server but might fail validation.                |
| [`is_server_ref`](#nemo_gym-config_types-is_server_ref)                                       | -                                                                                 |
| [`maybe_get_server_instance_config`](#nemo_gym-config_types-maybe_get_server_instance_config) | Returns ServerInstanceConfig if a valid server, otherwise None with error details |

### Data

[`AGENT_REF_KEY`](#nemo_gym-config_types-AGENT_REF_KEY)

[`DEPRECATED_UPLOAD_ROLLOUTS_KEY`](#nemo_gym-config_types-DEPRECATED_UPLOAD_ROLLOUTS_KEY)

[`DatasetSource`](#nemo_gym-config_types-DatasetSource)

[`DatasetType`](#nemo_gym-config_types-DatasetType)

[`ROLLOUT_PATH_PREFIX`](#nemo_gym-config_types-ROLLOUT_PATH_PREFIX)

[`ServerInstanceConfig`](#nemo_gym-config_types-ServerInstanceConfig)

[`ServerInstanceConfigTypeAdapter`](#nemo_gym-config_types-ServerInstanceConfigTypeAdapter)

[`ServerRef`](#nemo_gym-config_types-ServerRef)

[`ServerRefTypeAdapter`](#nemo_gym-config_types-ServerRefTypeAdapter)

[`ServerTypeConfig`](#nemo_gym-config_types-ServerTypeConfig)

[`TOKEN_CAPTURE_PATH_SEGMENT`](#nemo_gym-config_types-TOKEN_CAPTURE_PATH_SEGMENT)

### API

```python
class nemo_gym.config_types.AgentCompositionError()
```

**Bases:** [ConfigError](#nemo_gym-config_types-ConfigError), `ValueError`

A standalone agent config could not be composed onto the merged config's agent instances.

```python
class nemo_gym.config_types.AgentServerRef()
```

**Bases:** `BaseModel`

**`name`** `str`

---

**`type`** `Literal['responses_api_agents']`

---

```python
class nemo_gym.config_types.AgentWithoutEnvironmentServerError()
```

**Bases:** [ConfigError](#nemo_gym-config_types-ConfigError), `ValueError`

An agent instance has no environment server.

```python
class nemo_gym.config_types.AggregateMetrics()
```

**Bases:** `BaseModel`

Response from /aggregate\_metrics.

Flat string keys for direct logging to W\&B/MLflow.

**`agent_metrics`** `Dict[str, Any]`

---

**`group_level_metrics`** `List[Dict[str, Any]]`

---

**`key_metrics`** `Dict[str, Any]`

---

**`perf_summary`** `Optional[Dict[str, Any]]`

---

**`repeat_level_metrics`** `List[Dict[str, Any]]`

---

```python
class nemo_gym.config_types.AggregateMetricsRequest()
```

**Bases:** `BaseModel`

POST body for /aggregate\_metrics.

Each item is a stripped verify response dict containing at minimum:

* TASK\_INDEX\_KEY\_NAME: int
* "reward": float

**`verify_responses`** `List[Dict[str, Any]]`

---

```python
class nemo_gym.config_types.AlmostServerError()
```

**Bases:** [ConfigError](#nemo_gym-config_types-ConfigError), `ValueError`

One or more server blocks are almost-servers (right shape, failed validation) and
`error_on_almost_servers` is set, so the run is aborted.

```python
class nemo_gym.config_types.AmbiguousEnvironmentServerError()
```

**Bases:** [ConfigError](#nemo_gym-config_types-ConfigError), `ValueError`

Rows route by an agent that more than one environment server fronts.

```python
class nemo_gym.config_types.BaseNeMoGymCLIConfig()
```

**Bases:** `BaseModel`

```python
nemo_gym.config_types.BaseNeMoGymCLIConfig.pre_process(
    data
)
```

classmethod

```python
class nemo_gym.config_types.BaseRunServerConfig()
```

**Bases:** [BaseServerConfig](#nemo_gym-config_types-BaseServerConfig)

**`domain`** `Optional[Domain] = None`

---

**`entrypoint`** `str`

---

```python
class nemo_gym.config_types.BaseRunServerInstanceConfig()
```

**Bases:** [BaseRunServerConfig](#nemo_gym-config_types-BaseRunServerConfig)

**`name`** `str`

---

```python
class nemo_gym.config_types.BaseRunServerTypeConfig()
```

**Bases:** [BaseRunServerConfig](#nemo_gym-config_types-BaseRunServerConfig)

**`datasets`** `Optional[List[Union[DatasetConfig, BenchmarkDatasetConfig]]] = None`

---

**`host`** `Optional[str] = None`

---

**`model_config`** `= ConfigDict(extra='allow')`

---

**`port`** `Optional[int] = None`

---

```python
class nemo_gym.config_types.BaseServerConfig()
```

**Bases:** `BaseModel`

**`host`** `str`

---

**`num_workers`** `Optional[int] = None`

---

**`port`** `int`

---

```python
class nemo_gym.config_types.BaseServerInstanceConfig()
```

**Bases:** [BaseServerTypeConfig](#nemo_gym-config_types-BaseServerTypeConfig)

**`datasets`** `Optional[List[Union[DatasetConfig, BenchmarkDatasetConfig]]]`

---

**`model_config`** `= ConfigDict(arbitrary_types_allowed=True)`

---

**`name`** `str`

---

**`server_type_config_dict`** `DictConfig = Field(exclude=True)`

---

```python
nemo_gym.config_types.BaseServerInstanceConfig.get_inner_run_server_config() -> nemo_gym.config_types.BaseRunServerTypeConfig
```

```python
nemo_gym.config_types.BaseServerInstanceConfig.get_inner_run_server_config_dict() -> omegaconf.DictConfig
```

```python
nemo_gym.config_types.BaseServerInstanceConfig.get_server_ref() -> nemo_gym.config_types.ServerRef
```

```python
nemo_gym.config_types.BaseServerInstanceConfig.validate_domain_for_resources_server() -> nemo_gym.config_types.BaseServerInstanceConfig
```

```python
class nemo_gym.config_types.BaseServerTypeConfig()
```

**Bases:** `BaseModel`

**`SERVER_TYPE`** `Union[Literal['responses_api_models'], Literal['resources_servers'], Literal['responses_api_agents'], Literal['environment_servers']]`

---

```python
class nemo_gym.config_types.BaseUploadJsonlDatasetHuggingFaceConfig()
```

**Bases:** [BaseNeMoGymCLIConfig](#nemo_gym-config_types-BaseNeMoGymCLIConfig)

Upload a JSONL dataset to HuggingFace Hub with automatic naming based on domain and resources server.

Examples:

```python
resource_config_path="resources_servers/example_multi_step/configs/example_multi_step.yaml"
gym dataset upload         +dataset_name=my_dataset         +input_jsonl_fpath=data/train.jsonl         +resource_config_path=${resource_config_path}
```

**`commit_description`** `Optional[str]`

---

**`commit_message`** `Optional[str]`

---

**`create_pr`** `bool`

---

**`dataset_name`** `Optional[str]`

---

**`hf_collection_name`** `str`

---

**`hf_collection_slug`** `str`

---

**`hf_dataset_prefix`** `str`

---

**`hf_organization`** `str`

---

**`hf_token`** `str`

---

**`input_jsonl_fpath`** `str`

---

**`resource_config_path`** `str`

---

**`revision`** `Optional[str]`

---

**`split`** `Literal['train', 'validation', 'test']`

---

```python
class nemo_gym.config_types.BenchmarkDatasetConfig()
```

**Bases:** `BaseModel`

**`agent`** `Optional[str]`

---

**`jsonl_fpath`** `Path`

---

**`name`** `str`

---

**`num_repeats`** `int = Field(default=1, ge=1)`

---

**`prepare_dependencies`** `List[str] = Field(default_factory=list)`

---

**`prepare_script`** `Path`

---

**`prompt_config`** `Optional[Path] = None`

---

**`type`** `Literal['benchmark']`

---

```python
class nemo_gym.config_types.ConfigError()
```

Exception

**Bases:** `Exception`

Base for user-facing configuration errors.

These represent actionable user mistakes (typos, missing files, malformed input) rather than
internal bugs. The CLI catches `ConfigError` and prints just the message — no traceback —
while still leaving them as ordinary exceptions so callers like `validate` can catch and
format them.

```python
class nemo_gym.config_types.ConfigInterpolationError()
```

**Bases:** [ConfigError](#nemo_gym-config_types-ConfigError), `ValueError`

An `$&#123;...&#125;` interpolation references a key that is not present in the merged config.

```python
class nemo_gym.config_types.ConfigMissingValuesError()
```

**Bases:** [ConfigError](#nemo_gym-config_types-ConfigError), `ValueError`

One or more required config values are still unset (OmegaConf '???') after merging.

```python
class nemo_gym.config_types.ConfigPathNotFoundError()
```

**Bases:** [ConfigError](#nemo_gym-config_types-ConfigError), `FileNotFoundError`

A `config_paths` entry could not be found in the cwd or the Gym install location.

```python
class nemo_gym.config_types.DatasetConfig()
```

**Bases:** `BaseModel`

**`gitlab_identifier`** `Optional[JsonlDatasetGitlabIdentifer] = None`

---

**`huggingface_identifier`** `Optional[JsonlDatasetHuggingFaceIdentifer] = None`

---

**`jsonl_fpath`** `str`

---

**`license`** `Optional[Union[Literal['Apache 2.0'], Literal['MIT'], Literal['Creative Commons Attribution 4.0 International'], Literal['Creative Commons Attribution-ShareAlike 4.0 International'], Literal['CC BY-SA 4.0'], Literal['CC BY-NC 3.0'], Literal['NVIDIA Internal Use Only, Do Not Distribute'], Literal['NVIDIA Evaluation Dataset License Agreement'], Literal['TBD'], Literal['GNU General Public License v3.0']]] = None`

---

**`name`** `str`

---

**`num_repeats`** `int = Field(default=1, ge=1)`

---

**`source`** `Optional[DatasetSource] = None`

---

**`type`** `DatasetType`

---

```python
nemo_gym.config_types.DatasetConfig.check_train_validation_sets() -> nemo_gym.config_types.DatasetConfig
```

```python
nemo_gym.config_types.DatasetConfig.normalize_dataset_source() -> nemo_gym.config_types.DatasetConfig
```

Reconcile the unified `source:` with the legacy `*_identifier` fields.

The unified `source:` block is mutually exclusive with the legacy identifiers. The two
legacy identifiers may still be set together (a gitlab-primary / huggingface-fallback pair
selected at download time by `config.data_source`) for backward compatibility. A legacy
identifier emits a deprecation warning and, when a single backend is given, is mirrored into
`source`; conversely a `source:` is mirrored back into the matching legacy field so existing
consumers that read `gitlab_identifier`/`huggingface_identifier` keep working.

```python
class nemo_gym.config_types.DeleteJsonlDatasetGitlabConfig()
```

**Bases:** [BaseNeMoGymCLIConfig](#nemo_gym-config_types-BaseNeMoGymCLIConfig)

Delete a dataset from GitLab Model Registry (prompts for confirmation).

Examples:

```python
gym dataset rm +dataset_name=old_dataset
```

**`dataset_name`** `str`

---

```python
class nemo_gym.config_types.Domain
```

**Bases:** `enum.Enum`

The capability a resources server primarily evaluates or trains.

Pick the single domain that best fits the task. If several seem to apply, choose the most
specific one (e.g. prefer `math` or `coding` over `agent`); use `other` only when none
of the specific values fit. The values:

* `math`                  — mathematical problem solving (e.g. AIME, MATH, GSM8K).
* `coding`                — code generation, repair, or execution (e.g. SWE-bench, LiveCodeBench).
* `agent`                 — multi-step, tool-using / environment-interacting tasks (e.g. tau2,
  workplace\_assistant). Prefer a more specific value when the task is really math/coding/etc.
* `knowledge`             — factual or domain-knowledge question answering (e.g. GPQA, MMLU).
* `instruction_following` — adherence to explicit formatting/constraints (e.g. IFEval).
* `long_context`          — reasoning over long inputs (e.g. RULER, long-document QA).
* `safety`                — refusing harmful content / resisting jailbreaks & prompt injection.
* `games`                 — interactive game environments (e.g. blackjack, tetris).
* `translation`           — machine translation quality (e.g. WMT).
* `e2e`                   — end-to-end pipelines spanning multiple capabilities at once.
* `rlhf`                  — preference / reward-model / LLM-as-judge evaluations.
* `other`                 — catch-all when no specific domain above applies.

**`AGENT`** `= 'agent'`

---

**`CODING`** `= 'coding'`

---

**`E2E`** `= 'e2e'`

---

**`GAMES`** `= 'games'`

---

**`INSTRUCTION_FOLLOWING`** `= 'instruction_following'`

---

**`KNOWLEDGE`** `= 'knowledge'`

---

**`LONG_CONTEXT`** `= 'long_context'`

---

**`MATH`** `= 'math'`

---

**`OTHER`** `= 'other'`

---

**`RLHF`** `= 'rlhf'`

---

**`SAFETY`** `= 'safety'`

---

**`TRANSLATION`** `= 'translation'`

---

```python
class nemo_gym.config_types.DownloadJsonlDatasetGitlabConfig()
```

**Bases:** [JsonlDatasetGitlabIdentifer](#nemo_gym-config_types-JsonlDatasetGitlabIdentifer), [BaseNeMoGymCLIConfig](#nemo_gym-config_types-BaseNeMoGymCLIConfig)

Download a JSONL dataset from GitLab Model Registry.

Examples:

```python
gym dataset download --storage gitlab         +dataset_name=example_multi_step         +version=0.0.1         +artifact_fpath=train.jsonl         +output_fpath=data/train.jsonl
```

**`artifact_fpath`** `str`

---

**`dataset_name`** `str = Field(description='The dataset name.')`

---

**`output_fpath`** `str`

---

**`version`** `str`

---

```python
class nemo_gym.config_types.DownloadJsonlDatasetHuggingFaceConfig()
```

**Bases:** [JsonlDatasetHuggingFaceIdentifer](#nemo_gym-config_types-JsonlDatasetHuggingFaceIdentifer), [BaseNeMoGymCLIConfig](#nemo_gym-config_types-BaseNeMoGymCLIConfig)

Download a JSONL dataset from HuggingFace Hub to local filesystem.

Examples:

```python
gym dataset download         +repo_id=NVIDIA/NeMo-Gym-Math-example_multi_step-v1         +artifact_fpath=train.jsonl         +output_fpath=data/train.jsonl
```

**`hf_token`** `Optional[str]`

---

**`output_dirpath`** `Optional[str]`

---

**`output_fpath`** `Optional[str]`

---

**`split`** `Optional[Literal['train', 'validation', 'test']]`

---

```python
nemo_gym.config_types.DownloadJsonlDatasetHuggingFaceConfig.check_output_path() -> nemo_gym.config_types.DownloadJsonlDatasetHuggingFaceConfig
```

```python
class nemo_gym.config_types.EnvironmentServerInstanceConfig()
```

**Bases:** [EnvironmentServerTypeConfig](#nemo_gym-config_types-EnvironmentServerTypeConfig), [BaseServerInstanceConfig](#nemo_gym-config_types-BaseServerInstanceConfig)

```python
class nemo_gym.config_types.EnvironmentServerRef()
```

**Bases:** `BaseModel`

**`name`** `str`

---

**`type`** `Literal['environment_servers']`

---

```python
class nemo_gym.config_types.EnvironmentServerTypeConfig()
```

**Bases:** [BaseServerTypeConfig](#nemo_gym-config_types-BaseServerTypeConfig)

**`SERVER_TYPE`** `Literal['environment_servers'] = 'environment_servers'`

---

**`environment_servers`** `dict[str, BaseRunServerTypeConfig] = Field(min_length=1, max_length=1)`

---

**`model_config`** `= ConfigDict(extra='allow')`

---

```python
class nemo_gym.config_types.ExporterConfig()
```

**Bases:** `BaseModel`

Credentials and run identity for one exporter backend.

The exporter registry validates these against the global config to decide which backends to
open, which is why they live here rather than next to the backend: checking availability must
not require importing a tracking SDK.

**`is_available`** `bool`

Whether every field the backend needs to connect is set.

---

```python
class nemo_gym.config_types.GitlabDatasetSource()
```

**Bases:** `BaseModel`

Unified `source:` for a dataset fetched from the GitLab model registry.

**`artifact_fpath`** `str`

---

**`dataset_name`** `str`

---

**`type`** `Literal['gitlab']`

---

**`version`** `str`

---

```python
class nemo_gym.config_types.HuggingFaceDatasetSource()
```

**Bases:** `BaseModel`

Unified `source:` for a dataset fetched from the HuggingFace Hub.

**`artifact_fpath`** `Optional[str] = None`

---

**`repo_id`** `str`

---

**`type`** `Literal['huggingface']`

---

```python
class nemo_gym.config_types.InheritPathNotFoundError()
```

**Bases:** [ConfigError](#nemo_gym-config_types-ConfigError), `ValueError`

An `_inherit_from` / swap / copy directive references a config path that does not exist.

```python
class nemo_gym.config_types.JsonlDatasetGitlabIdentifer()
```

**Bases:** `BaseModel`

**`artifact_fpath`** `str`

---

**`dataset_name`** `str`

---

**`version`** `str`

---

```python
class nemo_gym.config_types.JsonlDatasetHuggingFaceIdentifer()
```

**Bases:** `BaseModel`

**`artifact_fpath`** `Optional[str]`

---

**`repo_id`** `str = Field(description='The repo id.')`

---

```python
class nemo_gym.config_types.MLFlowConfig()
```

**Bases:** [ExporterConfig](#nemo_gym-config_types-ExporterConfig)

Also used for the GitLab model registry, which needs only the URI and token.

**`is_available`** `bool`

---

**`mlflow_experiment_name`** `Optional[str] = None`

---

**`mlflow_run_name`** `Optional[str] = None`

---

**`mlflow_tracking_token`** `Optional[str] = None`

---

**`mlflow_tracking_uri`** `Optional[str] = None`

---

```python
class nemo_gym.config_types.MalformedConfigPathsError()
```

**Bases:** [ConfigError](#nemo_gym-config_types-ConfigError), `ValueError`

`config_paths` was not a list of paths (e.g. a scalar string was passed).

```python
class nemo_gym.config_types.ModelServerRef()
```

**Bases:** `BaseModel`

**`name`** `str`

---

**`type`** `Literal['responses_api_models']`

---

```python
class nemo_gym.config_types.NoServerInstancesError()
```

**Bases:** [ConfigError](#nemo_gym-config_types-ConfigError), `ValueError`

A run was requested but the merged config defines no server instances to start.

```python
class nemo_gym.config_types.ResourcesServerInstanceConfig()
```

**Bases:** [ResourcesServerTypeConfig](#nemo_gym-config_types-ResourcesServerTypeConfig), [BaseServerInstanceConfig](#nemo_gym-config_types-BaseServerInstanceConfig)

```python
class nemo_gym.config_types.ResourcesServerRef()
```

**Bases:** `BaseModel`

**`name`** `str`

---

**`type`** `Literal['resources_servers']`

---

```python
class nemo_gym.config_types.ResourcesServerTypeConfig()
```

**Bases:** [BaseServerTypeConfig](#nemo_gym-config_types-BaseServerTypeConfig)

**`SERVER_TYPE`** `Literal['resources_servers'] = 'resources_servers'`

---

**`model_config`** `= ConfigDict(extra='allow')`

---

**`resources_servers`** `Dict[str, BaseRunServerTypeConfig] = Field(min_length=1, max_length=1)`

---

```python
class nemo_gym.config_types.ResponsesAPIAgentServerInstanceConfig()
```

**Bases:** [ResponsesAPIAgentServerTypeConfig](#nemo_gym-config_types-ResponsesAPIAgentServerTypeConfig), [BaseServerInstanceConfig](#nemo_gym-config_types-BaseServerInstanceConfig)

```python
class nemo_gym.config_types.ResponsesAPIAgentServerTypeConfig()
```

**Bases:** [BaseServerTypeConfig](#nemo_gym-config_types-BaseServerTypeConfig)

**`SERVER_TYPE`** `Literal['responses_api_agents'] = 'responses_api_agents'`

---

**`model_config`** `= ConfigDict(extra='allow')`

---

**`responses_api_agents`** `Dict[str, BaseRunServerTypeConfig] = Field(min_length=1, max_length=1)`

---

```python
class nemo_gym.config_types.ResponsesAPIModelServerInstanceConfig()
```

**Bases:** [ResponsesAPIModelServerTypeConfig](#nemo_gym-config_types-ResponsesAPIModelServerTypeConfig), [BaseServerInstanceConfig](#nemo_gym-config_types-BaseServerInstanceConfig)

```python
class nemo_gym.config_types.ResponsesAPIModelServerTypeConfig()
```

**Bases:** [BaseServerTypeConfig](#nemo_gym-config_types-BaseServerTypeConfig)

**`SERVER_TYPE`** `Literal['responses_api_models'] = 'responses_api_models'`

---

**`model_config`** `= ConfigDict(extra='allow')`

---

**`responses_api_models`** `Dict[str, BaseRunServerTypeConfig] = Field(min_length=1, max_length=1)`

---

```python
class nemo_gym.config_types.ServerRefNotFoundError()
```

**Bases:** [ConfigError](#nemo_gym-config_types-ConfigError), `ValueError`

A server cross-reference points to an instance that is not defined in the merged config.

```python
class nemo_gym.config_types.UnsupportedAgentOverrideError()
```

**Bases:** [ConfigError](#nemo_gym-config_types-ConfigError), `ValueError`

A command line override configures an agent that no instance ends up running.

```python
class nemo_gym.config_types.UnsupportedAgentPairingError()
```

**Bases:** [ConfigError](#nemo_gym-config_types-ConfigError), `ValueError`

The selected agent is not one the environment's resources server declares support for.

```python
class nemo_gym.config_types.UnsupportedModelPairingError()
```

**Bases:** [ConfigError](#nemo_gym-config_types-ConfigError), `ValueError`

The selected model server is not one the environment's resources server declares support for.

```python
class nemo_gym.config_types.UploadJsonlDatasetGitlabConfig()
```

**Bases:** [BaseNeMoGymCLIConfig](#nemo_gym-config_types-BaseNeMoGymCLIConfig)

Upload a local jsonl dataset artifact to Gitlab.

Examples:

```python
gym dataset upload --storage gitlab         +dataset_name=example_multi_step         +version=0.0.1         +input_jsonl_fpath=data/train.jsonl
```

**`dataset_name`** `str = Field(description='The dataset name.')`

---

**`input_jsonl_fpath`** `str`

---

**`version`** `str`

---

```python
class nemo_gym.config_types.UploadJsonlDatasetHuggingFaceConfig()
```

**Bases:** [BaseUploadJsonlDatasetHuggingFaceConfig](#nemo_gym-config_types-BaseUploadJsonlDatasetHuggingFaceConfig)

Upload a JSONL dataset to HuggingFace Hub and automatically delete from GitLab after successful upload.

This command always deletes the dataset from GitLab after uploading to HuggingFace.
Use `gym dataset upload` if you want optional deletion control.

Examples:

```python
resource_config_path="resources_servers/example_multi_step/configs/example_multi_step.yaml"
gym dataset migrate         +dataset_name=my_dataset         +input_jsonl_fpath=data/train.jsonl         +resource_config_path=${resource_config_path}
```

**`forbidden_fields`** `Set[str] = {'delete_from_gitlab'}`

---

```python
nemo_gym.config_types.UploadJsonlDatasetHuggingFaceConfig.check_forbidden_fields(
    data
)
```

```python
class nemo_gym.config_types.UploadJsonlDatasetHuggingFaceMaybeDeleteConfig()
```

**Bases:** [BaseUploadJsonlDatasetHuggingFaceConfig](#nemo_gym-config_types-BaseUploadJsonlDatasetHuggingFaceConfig)

Upload a JSONL dataset to HuggingFace Hub with optional GitLab deletion after successful upload.

Examples:

```python
resource_config_path="resources_servers/example_multi_step/configs/example_multi_step.yaml"
gym dataset upload         +dataset_name=my_dataset         +input_jsonl_fpath=data/train.jsonl         +resource_config_path=${resource_config_path}         +delete_from_gitlab=true
```

**`delete_from_gitlab`** `Optional[bool]`

---

```python
class nemo_gym.config_types.UploadRolloutsConfigMixin()
```

**Bases:** `BaseModel`

`upload_rollouts` plus back-compat for the W\&B-specific name it replaced.

The flag gates rollout upload for every configured exporter, not just W\&B, so the old name is
accepted for one deprecation cycle and mapped onto the new field.

**`upload_rollouts`** `bool`

---

```python
nemo_gym.config_types.UploadRolloutsConfigMixin.map_deprecated_upload_rollouts(
    data
)
```

classmethod

```python
class nemo_gym.config_types.WANDBConfig()
```

**Bases:** [ExporterConfig](#nemo_gym-config_types-ExporterConfig)

**`is_available`** `bool`

---

**`wandb_api_key`** `Optional[str] = None`

---

**`wandb_name`** `Optional[str] = None`

---

**`wandb_project`** `Optional[str] = None`

---

```python
nemo_gym.config_types.is_almost_server(
    server_type_config_dict: typing.Any
) -> bool
```

Detects if a config looks like a server but might fail validation.

```python
nemo_gym.config_types.is_server_ref(
    config_dict: omegaconf.DictConfig
) -> typing.Optional[nemo_gym.config_types.ServerRef]
```

```python
nemo_gym.config_types.maybe_get_server_instance_config(
    name: str,
    server_type_config_dict: typing.Any
) -> typing.Tuple[typing.Optional[nemo_gym.config_types.ServerInstanceConfig], typing.Optional[pydantic.ValidationError]]
```

Returns ServerInstanceConfig if a valid server, otherwise None with error details

```python
nemo_gym.config_types.AGENT_REF_KEY = 'agent_ref'
```

```python
nemo_gym.config_types.DEPRECATED_UPLOAD_ROLLOUTS_KEY = 'upload_rollouts_to_wandb'
```

```python
nemo_gym.config_types.DatasetSource = Annotated[Union[GitlabDatasetSource, HuggingFaceDatasetSource], Field(discrimina...
```

```python
nemo_gym.config_types.DatasetType = Union[Literal['train'], Literal['validation'], Literal['example']]
```

```python
nemo_gym.config_types.ROLLOUT_PATH_PREFIX = 'ng-rollout'
```

```python
nemo_gym.config_types.ServerInstanceConfig = Union[ResponsesAPIModelServerInstanceConfig, ResourcesServerInstanceConfig, Resp...
```

```python
nemo_gym.config_types.ServerInstanceConfigTypeAdapter = TypeAdapter(ServerInstanceConfig)
```

```python
nemo_gym.config_types.ServerRef = ModelServerRef | ResourcesServerRef | AgentServerRef | EnvironmentServerRef
```

```python
nemo_gym.config_types.ServerRefTypeAdapter = TypeAdapter(ServerRef)
```

```python
nemo_gym.config_types.ServerTypeConfig = Union[ResponsesAPIModelServerTypeConfig, ResourcesServerTypeConfig, ResponsesAPI...
```

```python
nemo_gym.config_types.TOKEN_CAPTURE_PATH_SEGMENT = 'training-token-capture'
```