Skip to main content
Workload configuration management

Endpoints


List configurations

GET /api/v1/configurations

Parameters

Responses

200 - List of configurations

Create configuration

POST /api/v1/configurations

Request Body

Responses

201 - Configuration created

Get configuration

GET /api/v1/configurations/{config_id}

Parameters

Responses

200 - Configuration details

Update configuration

PATCH /api/v1/configurations/{config_id}

Parameters

Request Body

Responses

200 - Configuration updated
400 - Invalid request: a malformed body, duplicate component or container names, a body that fails conversion or structural validation, a configuration in the template workspace, a body carrying activeMappingFile, which only the mapping-file attach and detach operations write, or, while a mapping file is attached, an activeTraceset naming no traceset (code VALIDATION_ERROR). 409 - Conflict, while a mapping file is attached and the body carries activeTraceset. Code TRACESET_CONFLICTS_WITH_MAPPING when that traceset’s rank count differs from the mapping file’s: detach the mapping file first, or use a traceset with its rank count. 412 - Precondition failed (ETag mismatch) 422 - Unprocessable entity. Code MAPPING_PARAMS_LOCKED when a mapping file is attached and the updated configuration would leave a Chakra application without UseMapping true and MappingFileName chakra-mapping.txt: an edit of either parameter, an applications array that drops or changes them, or an application re-typed to Chakra. Detach the mapping file first, make the change, then attach it again. Code UNPROCESSABLE_ENTITY when a mapping file is attached, the body carries activeTraceset, and that traceset has no rank count: none was declared for it, none derives from its workloadMetadata, and none is recorded for its files. The refusal does not resolve on retry.

Delete configuration

DELETE /api/v1/configurations/{config_id}

Parameters

Responses

204 - Configuration deleted

Validate configuration

POST /api/v1/configurations/{config_id}/validate

Parameters

Responses

200 - Validation result

List available tracesets for configuration

GET /api/v1/configurations/{config_id}/traceset Returns tracesets that can be attached to configuration applications. Use scope=global to list all tracesets across all workspaces, or scope=workspace to filter by the configuration’s workspace only.

Parameters

Responses

200 - List of available tracesets
404 - Configuration not found

Attach traceset to configuration

PATCH /api/v1/configurations/{config_id}/traceset Sets the activeTraceset field on the configuration to reference the specified traceset. Requires at least one application with trafficType ‘chakra’ to exist in the configuration. Workspace-agnostic: any traceset can be attached regardless of workspace.

Parameters

Request Body

Responses

200 - Traceset attached successfully
400 - Invalid request (traceset not found, no Chakra application in configuration) 404 - Configuration not found 412 - Precondition failed (ETag mismatch) 409 - Conflict. Code TRACESET_CONFLICTS_WITH_MAPPING when a mapping file is attached to the configuration and its rank count differs from this traceset’s: detach the mapping file first, or attach a traceset with its rank count. 422 - Unprocessable entity, code UNPROCESSABLE_ENTITY, in three cases, none of which resolves on retry. The traceset has no rank count: none was declared for it, none derives from its workloadMetadata, and none is recorded for its files. The traceset’s rank count is zero or negative: the traceset data is malformed and cannot be used for a Chakra simulation. The traceset’s rank count exceeds the platform maximum of 4,096.

List configuration versions

GET /api/v1/configurations/{config_id}/versions

Parameters

Responses

200 - List of version summaries

Get specific configuration version

GET /api/v1/configurations/{config_id}/versions/{version}

Parameters

Responses

200 - Configuration version details
404 - Version not found

Get switch bandwidth by tier for a configuration version

GET /api/v1/configurations/{config_id}/versions/{version}/switch-bandwidth Serves the per-tier rollup of the native validator’s switch-bandwidth records persisted for this version. A version with no recorded row returns 404, never an empty or zero rollup: the version did not validate, or it validated before the records were persisted and the boot back-fill has not reached it yet.

Parameters

Responses

200 - Per-tier switch bandwidth
400 - Malformed configuration ID 404 - No switch bandwidth is recorded for this version: it did not validate, has not been back-filled yet, does not exist, or its configuration is deleted. 500 - Stored switch bandwidth could not be rolled up

List configuration components

GET /api/v1/configurations/{config_id}/components Returns all components from the configuration’s components array with optional type filtering

Parameters

Responses

200 - List of components
404 - Configuration not found

Add component to configuration

POST /api/v1/configurations/{config_id}/components Adds a component, container, or layer to the configuration by looking up the model from the database. For switch/nic/server: adds to components array. For rack/pod: adds to containers array. For layer: adds to links array.

Parameters

Responses

201 - Component added
400 - Invalid request (model not found, invalid parameters) 404 - Configuration not found

Remove component from configuration

DELETE /api/v1/configurations/{config_id}/components/{component_name} Removes a component from the configuration’s components array. Cascades removal to all container references, topology references, and child references in other components.

Parameters

Responses

204 - Component removed from configuration 404 - Configuration or component not found 412 - Precondition failed (ETag mismatch)

List configuration containers

GET /api/v1/configurations/{config_id}/containers Returns all containers from the configuration with optional type filtering

Parameters

Responses

200 - List of containers
404 - Configuration not found

Add component to container

PATCH /api/v1/configurations/{config_id}/containers/{container_name} Adds a component reference to the specified container. Validates that the component type is in the container’s allowed list.

Parameters

Request Body

Responses

200 - Component added to container
400 - Component type not allowed in container 404 - Configuration or container not found

Update component in container

PATCH /api/v1/configurations/{config_id}/containers/{container_name}/components/{component_name} Updates count and/or group on an existing component reference in the specified container. At least one of count or group must be provided.

Parameters

Request Body

Responses

200 - Component updated in container
400 - Invalid request (empty patch, count < 1) 404 - Configuration, container, or component not found 412 - Precondition failed (ETag mismatch)

Remove component from container

DELETE /api/v1/configurations/{config_id}/containers/{container_name}/components/{component_name} Removes a component reference from the specified container

Parameters

Responses

204 - Component removed from container 404 - Configuration, container, or component not found

Get allowed component types for container

GET /api/v1/configurations/{config_id}/containers/{container_name}/allowed Returns the list of component types allowed in this container based on its type

Parameters

Responses

200 - Allowed component types
404 - Configuration or container not found

List configuration applications

GET /api/v1/configurations/{config_id}/applications Returns all applications in the configuration’s topology

Parameters

Responses

200 - List of applications
404 - Configuration not found

Add application to configuration

POST /api/v1/configurations/{config_id}/applications Adds an application to the configuration’s topology by looking up the model from the database. Server resolves traffic type, version, and default parameters from the model.

Parameters

Responses

201 - Application added
400 - Invalid request (distribution sum exceeds 1.0) 404 - Configuration not found 422 - Unprocessable entity. Code MAPPING_PARAMS_LOCKED when a mapping file is attached and the new Chakra application does not carry UseMapping true and MappingFileName chakra-mapping.txt. Detach the mapping file first, add the application, then attach the mapping file again, which writes both parameters into every Chakra application.
GET /api/v1/configurations/{config_id}/links Returns all links (layer components) from the configuration

Parameters

Responses

200 - List of links
404 - Configuration not found

Add component to topology

PATCH /api/v1/configurations/{config_id}/topology Adds a component reference to the configuration’s topology.components array. Validates the named entity exists in the correct collection by type (switch→components, layer→links, pod→containers).

Parameters

Request Body

Responses

200 - Component added to topology
400 - Invalid request (type not allowed, duplicate, invalid type) 404 - Configuration or referenced entity not found

Update topology component

PATCH /api/v1/configurations/{config_id}/topology/{component_name} Updates the count on an existing component reference in the topology.

Parameters

Request Body

Responses

200 - Topology component updated
400 - Invalid request (count < 1) 404 - Configuration or component not found in topology 412 - Precondition failed (ETag mismatch)

Remove component from topology

DELETE /api/v1/configurations/{config_id}/topology/{component_name} Removes a component reference from the configuration’s topology.

Parameters

Responses

204 - Component removed from topology 404 - Configuration or component not found in topology 412 - Precondition failed (ETag mismatch)

Update distribution entry value

PATCH /api/v1/configurations/{config_id}/distribution Updates the value field of a specific entry in topology.appDistribution.randomApplicationDistribution[]. The entry is identified by parentApplication + distributionId.

Parameters

Request Body

Responses

200 - Distribution value updated
400 - Invalid request (value out of range, empty fields, no app_distribution) 404 - Configuration or distribution entry not found 409 - Concurrent modification conflict, please retry 412 - Precondition failed (ETag mismatch)

Remove application from configuration

DELETE /api/v1/configurations/{config_id}/applications/{app_name} Removes an application from the configuration’s topology. Remaining applications are auto-scaled to maintain distribution sum of 1.0.

Parameters

Responses

200 - Application removed successfully
404 - Configuration or application not found

Update global parameters

PATCH /api/v1/configurations/{config_id}/parameters Performs a validated merge of the provided TypedParameters patch into the configuration’s global_parameters. Backend-managed sections (ComputeConfiguration, ParallelizationParameters, etc.), readonly sections (SoftwareVersion), and hidden parameters are rejected with 400.

Parameters

Request Body

Responses

200 - Parameters updated successfully. Returns the full updated global TypedParameters (with backend params stripped). 400 - Invalid request (empty patch, unknown parameter key, type mismatch, structural mismatch, attempt to modify backend-managed/readonly/hidden params) 404 - Configuration not found 409 - Conflict (serialization failure from concurrent modification) 412 - Precondition failed (ETag mismatch)

Update component parameters

PATCH /api/v1/configurations/{config_id}/components/{component_name}/parameters Performs a validated merge of the provided TypedParameters patch into the named component’s typed_parameters. Only existing parameter keys can be updated, and types must match.

Parameters

Request Body

Responses

200 - Parameters updated successfully. Returns the full updated TypedParameters for the component. 400 - Invalid request (empty patch, unknown parameter key, type mismatch, structural mismatch) 404 - Configuration or component not found 409 - Conflict (serialization failure from concurrent modification) 412 - Precondition failed (ETag mismatch)

Update application parameters

PATCH /api/v1/configurations/{config_id}/applications/{app_name}/parameters Performs a validated merge of the provided TypedParameters patch into the named application’s typed_parameters. Only existing parameter keys can be updated, and types must match.

Parameters

Request Body

Responses

200 - Parameters updated successfully. Returns the full updated TypedParameters for the application. 400 - Invalid request (empty patch, unknown parameter key, type mismatch, structural mismatch) 404 - Configuration or application not found 409 - Conflict (serialization failure from concurrent modification) 412 - Precondition failed (ETag mismatch) 422 - Unprocessable entity. Code MAPPING_PARAMS_LOCKED when a mapping file is attached and the patch would leave a Chakra application without UseMapping true and MappingFileName chakra-mapping.txt. Detach the mapping file first, make the change, then attach it again.
PATCH /api/v1/configurations/{config_id}/links/{link_name}/parameters Performs a validated merge of the provided TypedParameters patch into the named link’s typed_parameters. Only existing parameter keys can be updated, and types must match.

Parameters

Request Body

Responses

200 - Parameters updated successfully. Returns the full updated TypedParameters for the link. 400 - Invalid request (empty patch, unknown parameter key, type mismatch, structural mismatch) 404 - Configuration or link not found 409 - Conflict (serialization failure from concurrent modification) 412 - Precondition failed (ETag mismatch)

Add child to component

PATCH /api/v1/configurations/{config_id}/configurations/{component_name} Adds a child component (NIC, GPU, or application) to the specified host (server) component. Validates that the child type is in the host’s allowedComponents list.

Parameters

Request Body

Responses

200 - Child component added to host
400 - Invalid request (child type not allowed, already attached) 404 - Configuration or component not found

Update child in component

PATCH /api/v1/configurations/{config_id}/configurations/{component_name}/components/{child_name} Updates count and/or group on an existing child component reference within the specified host (server) component. At least one of count or group must be provided.

Parameters

Request Body

Responses

200 - Child component updated
400 - Invalid request (empty patch, count < 1) 404 - Configuration, component, or child not found 412 - Precondition failed (ETag mismatch)

Remove child from component

DELETE /api/v1/configurations/{config_id}/configurations/{component_name}/components/{child_name} Removes a child component (NIC, GPU, or application) from the specified host (server) component.

Parameters

Responses

204 - Child component removed from host 404 - Configuration, component, or child not found 412 - Precondition failed (ETag mismatch)

Get software version

GET /api/v1/configurations/{config_id}/software-version Returns the simulator software version from the SoftwareVersion section of globalParameters.

Parameters

Responses

200 - Software version retrieved successfully
404 - Configuration not found