{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://itworx.local/pulse/specs/simulator-scenario.schema.json", "title": "Pulse telemetry simulator scenario", "type": "object", "additionalProperties": false, "required": [ "schemaVersion", "id", "name", "description", "initialState", "timeline", "expectedOutcomes" ], "properties": { "schemaVersion": { "type": "integer", "const": 1 }, "id": { "type": "string", "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$" }, "name": { "type": "string", "minLength": 1, "maxLength": 160 }, "description": { "type": "string", "maxLength": 1000 }, "initialState": { "type": "object", "maxProperties": 100 }, "timeline": { "type": "array", "minItems": 1, "maxItems": 1000, "items": { "type": "object", "additionalProperties": false, "required": [ "atSeconds", "action", "payload" ], "properties": { "atSeconds": { "type": "integer", "minimum": 0 }, "action": { "type": "string", "enum": [ "set-metric", "emit-event", "set-source-health", "set-entity-status", "set-probe-result", "disconnect", "reconnect", "restart-database", "slow-client" ] }, "payload": { "type": "object", "maxProperties": 100 } } } }, "expectedOutcomes": { "type": "array", "minItems": 1, "maxItems": 100, "items": { "type": "object", "additionalProperties": false, "required": [ "bySeconds", "assertion" ], "properties": { "bySeconds": { "type": "integer", "minimum": 0 }, "assertion": { "type": "string", "maxLength": 1000 }, "evidenceHint": { "type": "string", "maxLength": 500 } } } } } }