Message Schemas
Message schemas define the payload syntax and semantics for messages published or subscribed using the AMQP protocol. Schemas work like Python object classes that can easily be serialized to or deserialized from JavaScript Object Notation (JSON) for transmission in AMQP message payloads.
Command Messages
Command messages are published by the manager application during scenario execution.
- pydantic model InitTaskingParameters
Tasking parameters to initialize an execution.
Show JSON schema
{ "title": "InitTaskingParameters", "description": "Tasking parameters to initialize an execution.", "type": "object", "properties": { "simStartTime": { "description": "Earliest possible scenario start time.", "format": "date-time", "title": "Simstarttime", "type": "string" }, "simStopTime": { "description": "Latest possible scenario end time.", "format": "date-time", "title": "Simstoptime", "type": "string" }, "requiredApps": { "default": [], "description": "List of required applications.", "items": { "type": "string" }, "title": "Requiredapps", "type": "array" } }, "required": [ "simStartTime", "simStopTime" ] }
- Fields:
- pydantic model InitCommand
Command message to initialize an execution.
Show JSON schema
{ "title": "InitCommand", "description": "Command message to initialize an execution.", "type": "object", "properties": { "taskingParameters": { "$ref": "#/$defs/InitTaskingParameters", "description": "Tasking parameters for the initialize command." } }, "$defs": { "InitTaskingParameters": { "description": "Tasking parameters to initialize an execution.", "properties": { "simStartTime": { "description": "Earliest possible scenario start time.", "format": "date-time", "title": "Simstarttime", "type": "string" }, "simStopTime": { "description": "Latest possible scenario end time.", "format": "date-time", "title": "Simstoptime", "type": "string" }, "requiredApps": { "default": [], "description": "List of required applications.", "items": { "type": "string" }, "title": "Requiredapps", "type": "array" } }, "required": [ "simStartTime", "simStopTime" ], "title": "InitTaskingParameters", "type": "object" } }, "required": [ "taskingParameters" ] }
- field tasking_parameters: InitTaskingParameters [Required] (alias 'taskingParameters')
Tasking parameters for the initialize command.
- pydantic model StartTaskingParameters
Tasking parameters to start an execution.
Show JSON schema
{ "title": "StartTaskingParameters", "description": "Tasking parameters to start an execution.", "type": "object", "properties": { "startTime": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "default": null, "description": "Wallclock time at which to start execution.", "title": "Starttime" }, "simStartTime": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "default": null, "description": "Scenario time at which to start execution.", "title": "Simstarttime" }, "simStopTime": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "default": null, "description": "Scenario time at which to stop execution.", "title": "Simstoptime" }, "timeScalingFactor": { "default": 1.0, "description": "Scenario seconds per wallclock second.", "exclusiveMinimum": 0, "title": "Timescalingfactor", "type": "number" } } }
- Fields:
- field sim_start_time: datetime | None = None (alias 'simStartTime')
Scenario time at which to start execution.
- field sim_stop_time: datetime | None = None (alias 'simStopTime')
Scenario time at which to stop execution.
- pydantic model StartCommand
Command message to start an execution.
Show JSON schema
{ "title": "StartCommand", "description": "Command message to start an execution.", "type": "object", "properties": { "taskingParameters": { "$ref": "#/$defs/StartTaskingParameters", "description": "Tasking parameters for the start command." } }, "$defs": { "StartTaskingParameters": { "description": "Tasking parameters to start an execution.", "properties": { "startTime": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "default": null, "description": "Wallclock time at which to start execution.", "title": "Starttime" }, "simStartTime": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "default": null, "description": "Scenario time at which to start execution.", "title": "Simstarttime" }, "simStopTime": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "default": null, "description": "Scenario time at which to stop execution.", "title": "Simstoptime" }, "timeScalingFactor": { "default": 1.0, "description": "Scenario seconds per wallclock second.", "exclusiveMinimum": 0, "title": "Timescalingfactor", "type": "number" } }, "title": "StartTaskingParameters", "type": "object" } }, "required": [ "taskingParameters" ] }
- field tasking_parameters: StartTaskingParameters [Required] (alias 'taskingParameters')
Tasking parameters for the start command.
- pydantic model StopTaskingParameters
Tasking parameters to stop an execution.
Show JSON schema
{ "title": "StopTaskingParameters", "description": "Tasking parameters to stop an execution.", "type": "object", "properties": { "simStopTime": { "description": "Scenario time at which to stop execution.", "format": "date-time", "title": "Simstoptime", "type": "string" } }, "required": [ "simStopTime" ] }
- pydantic model StopCommand
Command message to stop an execution.
Show JSON schema
{ "title": "StopCommand", "description": "Command message to stop an execution.", "type": "object", "properties": { "taskingParameters": { "$ref": "#/$defs/StopTaskingParameters", "description": "Tasking parameters for the stop command." } }, "$defs": { "StopTaskingParameters": { "description": "Tasking parameters to stop an execution.", "properties": { "simStopTime": { "description": "Scenario time at which to stop execution.", "format": "date-time", "title": "Simstoptime", "type": "string" } }, "required": [ "simStopTime" ], "title": "StopTaskingParameters", "type": "object" } }, "required": [ "taskingParameters" ] }
- field tasking_parameters: StopTaskingParameters [Required] (alias 'taskingParameters')
Tasking parameters for the stop command.
- pydantic model UpdateTaskingParameters
Tasking parameters to update an execution.
Show JSON schema
{ "title": "UpdateTaskingParameters", "description": "Tasking parameters to update an execution.", "type": "object", "properties": { "timeScalingFactor": { "description": "Time scaling factor (scenario seconds per wallclock second).", "exclusiveMinimum": 0, "title": "Timescalingfactor", "type": "number" }, "simUpdateTime": { "description": "Scenario time at which to update the time scaling factor.", "format": "date-time", "title": "Simupdatetime", "type": "string" } }, "required": [ "timeScalingFactor", "simUpdateTime" ] }
- pydantic model UpdateCommand
Command message to update an execution.
Show JSON schema
{ "title": "UpdateCommand", "description": "Command message to update an execution.", "type": "object", "properties": { "taskingParameters": { "$ref": "#/$defs/UpdateTaskingParameters", "description": "Tasking parameters for the stop command." } }, "$defs": { "UpdateTaskingParameters": { "description": "Tasking parameters to update an execution.", "properties": { "timeScalingFactor": { "description": "Time scaling factor (scenario seconds per wallclock second).", "exclusiveMinimum": 0, "title": "Timescalingfactor", "type": "number" }, "simUpdateTime": { "description": "Scenario time at which to update the time scaling factor.", "format": "date-time", "title": "Simupdatetime", "type": "string" } }, "required": [ "timeScalingFactor", "simUpdateTime" ], "title": "UpdateTaskingParameters", "type": "object" } }, "required": [ "taskingParameters" ] }
- field tasking_parameters: UpdateTaskingParameters [Required] (alias 'taskingParameters')
Tasking parameters for the stop command.
Freeze/Resume/Update Messages
Freeze, resume, and update messages support the distributed freeze/resume system introduced in version 3.0.0. Managed applications send request messages to the Manager, which then issues command messages to all applications. See Freeze, Resume, and Update System for usage details.
Freeze Commands (Manager to all applications):
- pydantic model FreezeTaskingParameters
Tasking parameters to freeze an execution.
Show JSON schema
{ "title": "FreezeTaskingParameters", "description": "Tasking parameters to freeze an execution.", "type": "object", "properties": { "simFreezeTime": { "description": "Scenario time at which to freeze execution.", "format": "date-time", "title": "Simfreezetime", "type": "string" }, "freezeDuration": { "anyOf": [ { "format": "duration", "type": "string" }, { "type": "null" } ], "default": null, "description": "Wallclock time duration for which to freeze execution.", "title": "Freezeduration" } }, "required": [ "simFreezeTime" ] }
- pydantic model FreezeCommand
Command message to freeze an execution.
Show JSON schema
{ "title": "FreezeCommand", "description": "Command message to freeze an execution.", "type": "object", "properties": { "taskingParameters": { "$ref": "#/$defs/FreezeTaskingParameters", "description": "Tasking parameters for the freeze command." } }, "$defs": { "FreezeTaskingParameters": { "description": "Tasking parameters to freeze an execution.", "properties": { "simFreezeTime": { "description": "Scenario time at which to freeze execution.", "format": "date-time", "title": "Simfreezetime", "type": "string" }, "freezeDuration": { "anyOf": [ { "format": "duration", "type": "string" }, { "type": "null" } ], "default": null, "description": "Wallclock time duration for which to freeze execution.", "title": "Freezeduration" } }, "required": [ "simFreezeTime" ], "title": "FreezeTaskingParameters", "type": "object" } }, "required": [ "taskingParameters" ] }
- field tasking_parameters: FreezeTaskingParameters [Required] (alias 'taskingParameters')
Tasking parameters for the freeze command.
Resume Commands (Manager to all applications):
- pydantic model ResumeTaskingParameters
Tasking parameters to resume an execution.
Show JSON schema
{ "title": "ResumeTaskingParameters", "description": "Tasking parameters to resume an execution.", "type": "object", "properties": { "resumeTime": { "description": "Wallclock time at which to resume execution.", "format": "date-time", "title": "Resumetime", "type": "string" }, "simResumeTime": { "description": "Scenario time at which to resume execution.", "format": "date-time", "title": "Simresumetime", "type": "string" } }, "required": [ "resumeTime", "simResumeTime" ] }
- pydantic model ResumeCommand
Command message to resume an execution.
Show JSON schema
{ "title": "ResumeCommand", "description": "Command message to resume an execution.", "type": "object", "properties": { "taskingParameters": { "$ref": "#/$defs/ResumeTaskingParameters", "description": "Tasking parameters for the resume command." } }, "$defs": { "ResumeTaskingParameters": { "description": "Tasking parameters to resume an execution.", "properties": { "resumeTime": { "description": "Wallclock time at which to resume execution.", "format": "date-time", "title": "Resumetime", "type": "string" }, "simResumeTime": { "description": "Scenario time at which to resume execution.", "format": "date-time", "title": "Simresumetime", "type": "string" } }, "required": [ "resumeTime", "simResumeTime" ], "title": "ResumeTaskingParameters", "type": "object" } }, "required": [ "taskingParameters" ] }
- field tasking_parameters: ResumeTaskingParameters [Required] (alias 'taskingParameters')
Tasking parameters for the resume command.
Freeze Requests (Managed application to Manager):
- pydantic model FreezeRequestParameters
Parameters for requesting a freeze from a managed application.
Show JSON schema
{ "title": "FreezeRequestParameters", "description": "Parameters for requesting a freeze from a managed application.", "type": "object", "properties": { "simFreezeTime": { "description": "Scenario time at which to freeze execution.", "format": "date-time", "title": "Simfreezetime", "type": "string" }, "freezeTime": { "description": "Wallclock time at which to freeze execution.", "format": "date-time", "title": "Freezetime", "type": "string" }, "freezeDuration": { "anyOf": [ { "format": "duration", "type": "string" }, { "type": "null" } ], "default": null, "description": "Wallclock time duration for which to freeze execution.", "title": "Freezeduration" }, "resumeTime": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "default": null, "description": "Scenario time at which to resume execution.", "title": "Resumetime" }, "requestingApp": { "description": "Name of the application requesting the freeze.", "title": "Requestingapp", "type": "string" } }, "required": [ "simFreezeTime", "freezeTime", "requestingApp" ] }
- Fields:
- field freeze_duration: timedelta | None = None (alias 'freezeDuration')
Wallclock time duration for which to freeze execution.
- field requesting_app: str [Required] (alias 'requestingApp')
Name of the application requesting the freeze.
- pydantic model FreezeRequest
Request message for a managed application to request a freeze.
Show JSON schema
{ "title": "FreezeRequest", "description": "Request message for a managed application to request a freeze.", "type": "object", "properties": { "taskingParameters": { "$ref": "#/$defs/FreezeRequestParameters" } }, "$defs": { "FreezeRequestParameters": { "description": "Parameters for requesting a freeze from a managed application.", "properties": { "simFreezeTime": { "description": "Scenario time at which to freeze execution.", "format": "date-time", "title": "Simfreezetime", "type": "string" }, "freezeTime": { "description": "Wallclock time at which to freeze execution.", "format": "date-time", "title": "Freezetime", "type": "string" }, "freezeDuration": { "anyOf": [ { "format": "duration", "type": "string" }, { "type": "null" } ], "default": null, "description": "Wallclock time duration for which to freeze execution.", "title": "Freezeduration" }, "resumeTime": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "default": null, "description": "Scenario time at which to resume execution.", "title": "Resumetime" }, "requestingApp": { "description": "Name of the application requesting the freeze.", "title": "Requestingapp", "type": "string" } }, "required": [ "simFreezeTime", "freezeTime", "requestingApp" ], "title": "FreezeRequestParameters", "type": "object" } }, "required": [ "taskingParameters" ] }
- field tasking_parameters: FreezeRequestParameters [Required] (alias 'taskingParameters')
Resume Requests (Managed application to Manager):
- pydantic model ResumeRequestParameters
Parameters for requesting a resume from a managed application.
Show JSON schema
{ "title": "ResumeRequestParameters", "description": "Parameters for requesting a resume from a managed application.", "type": "object", "properties": { "requestingApp": { "description": "Name of the application requesting the freeze.", "title": "Requestingapp", "type": "string" }, "simResumeTime": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "default": null, "description": "Scenario time at which to resume execution. If not provided, resume immediately.", "title": "Simresumetime" }, "tolerance": { "anyOf": [ { "format": "duration", "type": "string" }, { "type": "null" } ], "default": null, "description": "Time tolerance for resume. If provided, ResumeCommand is sent only if current scenario time is within tolerance of sim_resume_time. If not provided, ResumeCommand is sent immediately.", "title": "Tolerance" } }, "required": [ "requestingApp" ] }
- Fields:
- field requesting_app: str [Required] (alias 'requestingApp')
Name of the application requesting the freeze.
- pydantic model ResumeRequest
Request message for a managed application to request a resume.
Show JSON schema
{ "title": "ResumeRequest", "description": "Request message for a managed application to request a resume.", "type": "object", "properties": { "taskingParameters": { "$ref": "#/$defs/ResumeRequestParameters" } }, "$defs": { "ResumeRequestParameters": { "description": "Parameters for requesting a resume from a managed application.", "properties": { "requestingApp": { "description": "Name of the application requesting the freeze.", "title": "Requestingapp", "type": "string" }, "simResumeTime": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "default": null, "description": "Scenario time at which to resume execution. If not provided, resume immediately.", "title": "Simresumetime" }, "tolerance": { "anyOf": [ { "format": "duration", "type": "string" }, { "type": "null" } ], "default": null, "description": "Time tolerance for resume. If provided, ResumeCommand is sent only if current scenario time is within tolerance of sim_resume_time. If not provided, ResumeCommand is sent immediately.", "title": "Tolerance" } }, "required": [ "requestingApp" ], "title": "ResumeRequestParameters", "type": "object" } }, "required": [ "taskingParameters" ] }
- field tasking_parameters: ResumeRequestParameters [Required] (alias 'taskingParameters')
Update Requests (Managed application to Manager):
- pydantic model UpdateRequestParameters
Parameters for requesting an update from a managed application.
Show JSON schema
{ "title": "UpdateRequestParameters", "description": "Parameters for requesting an update from a managed application.", "type": "object", "properties": { "timeScalingFactor": { "description": "Time scaling factor (scenario seconds per wallclock second).", "exclusiveMinimum": 0, "title": "Timescalingfactor", "type": "number" }, "simUpdateTime": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "default": null, "description": "Scenario time at which to update the time scaling factor.", "title": "Simupdatetime" }, "requestingApp": { "description": "Name of the application requesting the update.", "title": "Requestingapp", "type": "string" } }, "required": [ "timeScalingFactor", "requestingApp" ] }
- field requesting_app: str [Required] (alias 'requestingApp')
Name of the application requesting the update.
- pydantic model UpdateRequest
Request message for a managed application to request an update.
Show JSON schema
{ "title": "UpdateRequest", "description": "Request message for a managed application to request an update.", "type": "object", "properties": { "taskingParameters": { "$ref": "#/$defs/UpdateRequestParameters" } }, "$defs": { "UpdateRequestParameters": { "description": "Parameters for requesting an update from a managed application.", "properties": { "timeScalingFactor": { "description": "Time scaling factor (scenario seconds per wallclock second).", "exclusiveMinimum": 0, "title": "Timescalingfactor", "type": "number" }, "simUpdateTime": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "default": null, "description": "Scenario time at which to update the time scaling factor.", "title": "Simupdatetime" }, "requestingApp": { "description": "Name of the application requesting the update.", "title": "Requestingapp", "type": "string" } }, "required": [ "timeScalingFactor", "requestingApp" ], "title": "UpdateRequestParameters", "type": "object" } }, "required": [ "taskingParameters" ] }
- field tasking_parameters: UpdateRequestParameters [Required] (alias 'taskingParameters')
Status Messages
Status messages are published by all applications during scenario execution.
- pydantic model TimeStatusProperties
Properties to report time status.
Show JSON schema
{ "title": "TimeStatusProperties", "description": "Properties to report time status.", "type": "object", "properties": { "simTime": { "description": "Current scenario time.", "format": "date-time", "title": "Simtime", "type": "string" }, "time": { "description": "Current wallclock time.", "format": "date-time", "title": "Time", "type": "string" } }, "required": [ "simTime", "time" ] }
- pydantic model TimeStatus
Message to report time status.
Show JSON schema
{ "title": "TimeStatus", "description": "Message to report time status.", "type": "object", "properties": { "name": { "description": "Name of the application providing a time status.", "title": "Name", "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Description of the application providing a ready status.", "title": "Description" }, "properties": { "$ref": "#/$defs/TimeStatusProperties", "description": "Properties for the time status." } }, "$defs": { "TimeStatusProperties": { "description": "Properties to report time status.", "properties": { "simTime": { "description": "Current scenario time.", "format": "date-time", "title": "Simtime", "type": "string" }, "time": { "description": "Current wallclock time.", "format": "date-time", "title": "Time", "type": "string" } }, "required": [ "simTime", "time" ], "title": "TimeStatusProperties", "type": "object" } }, "required": [ "name", "properties" ] }
- field properties: TimeStatusProperties [Required]
Properties for the time status.
- pydantic model ModeStatusProperties
Properties to report mode status.
Show JSON schema
{ "title": "ModeStatusProperties", "description": "Properties to report mode status.", "type": "object", "properties": { "mode": { "$ref": "#/$defs/Mode", "description": "Current execution mode." } }, "$defs": { "Mode": { "description": "Enumeration of simulation modes.\n\nThe six simulation modes include\n * `UNDEFINED`: Simulation is in an undefined state that is not one of the other modes.\n For example, the simulation reverts to UNDEFINED after adding a new entity\n and must be re-initialized before execution.\n * `INITIALIZING`: Simulation is in the process of initialization.\n * `INITIALIZED`: Simulation has finished initialization and is ready to execute.\n * `EXECUTING`: Simulation is in the process of execution.\n * `TERMINATING`: Simulation is in the process of termination.\n * `TERMINATED`: Simulation has finished termination and is ready for initialization.", "enum": [ "UNDEFINED", "INITIALIZING", "INITIALIZED", "EXECUTING", "PAUSING", "PAUSED", "RESUMING", "TERMINATING", "TERMINATED" ], "title": "Mode", "type": "string" } }, "required": [ "mode" ] }
- Fields:
- pydantic model ModeStatus
Message to report mode status.
Show JSON schema
{ "title": "ModeStatus", "description": "Message to report mode status.", "type": "object", "properties": { "name": { "description": "Name of the application providing a mode status.", "title": "Name", "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Description of the application providing a ready status.", "title": "Description" }, "properties": { "$ref": "#/$defs/ModeStatusProperties", "description": "Properties for the mode status." } }, "$defs": { "Mode": { "description": "Enumeration of simulation modes.\n\nThe six simulation modes include\n * `UNDEFINED`: Simulation is in an undefined state that is not one of the other modes.\n For example, the simulation reverts to UNDEFINED after adding a new entity\n and must be re-initialized before execution.\n * `INITIALIZING`: Simulation is in the process of initialization.\n * `INITIALIZED`: Simulation has finished initialization and is ready to execute.\n * `EXECUTING`: Simulation is in the process of execution.\n * `TERMINATING`: Simulation is in the process of termination.\n * `TERMINATED`: Simulation has finished termination and is ready for initialization.", "enum": [ "UNDEFINED", "INITIALIZING", "INITIALIZED", "EXECUTING", "PAUSING", "PAUSED", "RESUMING", "TERMINATING", "TERMINATED" ], "title": "Mode", "type": "string" }, "ModeStatusProperties": { "description": "Properties to report mode status.", "properties": { "mode": { "$ref": "#/$defs/Mode", "description": "Current execution mode." } }, "required": [ "mode" ], "title": "ModeStatusProperties", "type": "object" } }, "required": [ "name", "properties" ] }
- field properties: ModeStatusProperties [Required]
Properties for the mode status.
- pydantic model ReadyStatusProperties
Properties to report ready status.
Show JSON schema
{ "title": "ReadyStatusProperties", "description": "Properties to report ready status.", "type": "object", "properties": { "ready": { "default": true, "description": "True, if this application is ready.", "title": "Ready", "type": "boolean" } } }
- Fields:
- pydantic model ReadyStatus
Message to report ready status.
Show JSON schema
{ "title": "ReadyStatus", "description": "Message to report ready status.", "type": "object", "properties": { "name": { "description": "Name of the application providing a ready status.", "title": "Name", "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Description of the application providing a ready status.", "title": "Description" }, "properties": { "$ref": "#/$defs/ReadyStatusProperties", "description": "Properties for the ready status." } }, "$defs": { "ReadyStatusProperties": { "description": "Properties to report ready status.", "properties": { "ready": { "default": true, "description": "True, if this application is ready.", "title": "Ready", "type": "boolean" } }, "title": "ReadyStatusProperties", "type": "object" } }, "required": [ "name", "properties" ] }
- field properties: ReadyStatusProperties [Required]
Properties for the ready status.