{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "urn:hololake:release-broadcast:v1", "title": "HoloLake signed opt-in release broadcast", "type": "object", "additionalProperties": false, "required": [ "schema", "releaseId", "version", "pub_date", "notes", "platforms", "hololake" ], "properties": { "schema": { "const": "hololake.release-broadcast/v1" }, "releaseId": { "type": "string", "minLength": 1 }, "version": { "type": "string", "pattern": "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(?:-[0-9A-Za-z.-]+)?(?:\\+[0-9A-Za-z.-]+)?$" }, "pub_date": { "type": "string", "format": "date-time" }, "notes": { "type": "string", "minLength": 1 }, "platforms": { "type": "object", "minProperties": 1, "additionalProperties": { "type": "object", "additionalProperties": false, "required": ["url", "signature", "size", "sha256"], "properties": { "url": { "type": "string", "format": "uri", "pattern": "^https://" }, "size": { "type": "integer", "minimum": 1 }, "sha256": { "type": "string", "pattern": "^[a-f0-9]{64}$" }, "signature": { "type": "string", "minLength": 1 }, "platformCodeSignatureReceipt": { "type": "string", "minLength": 1 }, "notarizationReceipt": { "type": "string", "minLength": 1 } } } }, "hololake": { "type": "object", "additionalProperties": false, "required": ["features", "compatibility", "restart", "rollback"], "properties": { "features": { "type": "array", "minItems": 1, "items": { "type": "string", "minLength": 1 } }, "fixes": { "type": "array", "items": { "type": "string", "minLength": 1 } }, "compatibility": { "type": "object", "additionalProperties": false, "required": ["minimumVersion", "dataMigrationRequired"], "properties": { "minimumVersion": { "type": "string", "minLength": 1 }, "dataMigrationRequired": { "type": "boolean" }, "notes": { "type": "string" } } }, "restart": { "type": "object", "additionalProperties": false, "required": ["required", "automaticAllowed"], "properties": { "required": { "const": true }, "automaticAllowed": { "const": false }, "message": { "type": "string" } } }, "rollback": { "type": "object", "additionalProperties": false, "required": ["supported", "healthReceiptRequired"], "properties": { "supported": { "const": true }, "healthReceiptRequired": { "const": true }, "previousVersion": { "type": "string" } } } } } } }