/api/simulations/interactive/{id}

Last updated on 16th July 2024

PUT

Update the state of an interactive simulation

Request

Parameters

Name Located in Description Required Schema
id path ID of interactive simulation Yes string
body body Optional state to apply to simulation Yes inline

Example request

curl -X PUT http://localhost:8080/api/simulations/interactive/{id} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -d '{"setup": "true"}'

Body Schema

State will always be applied in the order it appears in this table, regardless of the order in request body.

Parameter Type Required Description
restart boolean Restart the simulation, resetting all inputs and config to default values.
config object Key value object of config keys to update with values to update to.
input object Key value object of input field to update with values to update to.
setup boolean If the simulation should be setup.
tick integer Tick to run to simulation to.

Example request body

{
  "restart": true,
  "config": { "core.prng-seed": 1 },
  "input": { "gridsize": 20 },
  "setup": true,
  "tick": 10
}

Response

Status Meaning Description Schema
204 No Content Request was completed successfully None
400 Bad Request Request error Inline
404 Not Found Simulation not found Inline
409 Conflict Conflict completing request in current state Inline
500 Internal Server Error Internal server error Inline

Response Schema

Status Code 400

Name Type Required
message string true

Example 400 response body

{
  "message": "Could not handle message"
}

Status Code 404

Name Type Required
message string true

Example 404 response body

{
  "message": "Could not find simulation '5af75d69-1926-4ef2-a56f-07ad5f85673b'"
}

Status Code 409

Name Type Required
message string true

Example 409 response body

{
  "message": "Cannot set model tick for model that has not been setup."
}

Status Code 500

Name Type Required
message string true

GET

Given the id, returns the interactive simulation object.

Request

Parameters

Name Located in Description Required Schema
id path ID of simulation Yes string

Example request

curl -X GET http://localhost:8080/api/simulations/interactive/{id} \
  -H 'Accept: application/json'

Response

Status Meaning Description Schema
200 OK Request was completed successfully Inline
404 Not Found Simulation not found Inline

Response Schema

Status Code 200

Name Type Required Description
id string(uuid) true
isStarted boolean true Is simulation ready to take requests
isBusy boolean true If simulation is currently busy processing, it cannot handle requests.
metadata object true
setup boolean true If simulation has been setup.
compileResult object true

Example 200 response body

{
  "id": "d7558ad9-3405-4a4c-972a-531a87fdcd27",
  "isStarted": true,
  "isBusy": false,
  "metadata": {
    "kind": "pojo",
    "schema": []
  },
  "setup": false,
  "compileResult": {
    "hasErrors": false,
    "hasWarnings": false,
    "files": {}
  }
}

Status Code 404

Name Type Required
message string true

Example 404 response body

{
  "message": "Could not find simulation '5af75d69-1926-4ef2-a56f-07ad5f85673b'"
}

DELETE

Given the id, deletes the simulation.

Request

Parameters

Name Located in Description Required Schema
id path id of simulation Yes string

Example request

curl -X DELETE \
  http://localhost:8080/api/simulations/interactive/a098275a-307d-4d65-b8a5-47b9b484c609 \
  -H 'Cache-Control: no-cache'

Response

Status Meaning Description Schema
204 No Content Request was completed successfully None
404 Not Found Simulation not found Inline

Response Schema


Status Code 404

Name Type Required
message string true

Example 404 response body

{
  "message": "Could not find simulation '5af75d69-1926-4ef2-a56f-07ad5f85673b'"
}