{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "id": { "type": "string", "minLength": 1 }, "proposal_digest": { "type": "string", "pattern": "^[0-9a-f]{64}$" }, "decision": { "type": "string", "enum": [ "APPROVE", "REJECT" ] }, "approver": { "type": "object", "properties": { "id": { "type": "string", "minLength": 1 }, "role": { "type": "string", "minLength": 1 } }, "required": [ "id", "role" ], "additionalProperties": false }, "scope": { "type": "object", "properties": { "effect_type": { "type": "string", "enum": [ "BID", "INVITATION", "CONTROL_PLAN", "DISPATCH_PLAN" ] }, "limits": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "type": "string", "pattern": "^-?\\d+(\\.\\d+)?$" } } }, "required": [ "effect_type", "limits" ], "additionalProperties": false }, "validity": { "type": "object", "properties": { "from": { "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$" }, "to": { "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$" } }, "required": [ "from", "to" ], "additionalProperties": false }, "evidence_versions": { "type": "object", "properties": { "policy_pack_version": { "type": "string", "minLength": 1 }, "ledger_version": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "data_snapshot_refs": { "type": "array", "items": { "type": "string", "pattern": "^[0-9a-f]{64}$" } } }, "required": [ "policy_pack_version", "ledger_version", "data_snapshot_refs" ], "additionalProperties": false }, "comment": { "type": "string" }, "decided_at": { "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$" } }, "required": [ "id", "proposal_digest", "decision", "approver", "scope", "validity", "evidence_versions", "decided_at" ], "additionalProperties": false, "$id": "https://vpp-ai-platform/contracts/approval.json", "title": "Approval" }