{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://netkingdom.local/schemas/playbook-capability-declaration_v0.1.schema.json", "title": "NetKingdom Playbook Capability Declaration v0.1", "type": "object", "additionalProperties": false, "required": ["apiVersion", "kind", "metadata", "spec"], "properties": { "apiVersion": { "type": "string", "const": "netkingdom.io/playbook-capability/v0.1" }, "kind": { "type": "string", "const": "PlaybookCapabilityDeclaration" }, "metadata": { "type": "object", "additionalProperties": false, "required": ["id", "name", "owner", "repo", "domain", "contract_version"], "properties": { "id": {"type": "string", "minLength": 1}, "name": {"type": "string", "minLength": 1}, "owner": {"type": "string", "minLength": 1}, "repo": {"type": "string", "minLength": 1}, "domain": {"type": "string", "minLength": 1}, "contract_version": {"type": "string", "const": "0.1"}, "source_links": { "type": "array", "items": { "type": "object", "additionalProperties": false, "required": ["label", "path"], "properties": { "label": {"type": "string", "minLength": 1}, "path": {"type": "string", "minLength": 1} } } } } }, "spec": { "type": "object", "additionalProperties": false, "required": ["playbook", "capabilities", "parameters", "responsibilities", "trust", "catalog"], "properties": { "playbook": {"type": "object"}, "capabilities": {"type": "array", "minItems": 1}, "parameters": {"type": "array"}, "responsibilities": {"type": "array", "minItems": 1}, "trust": {"type": "object"}, "catalog": {"type": "object"} } } } }