Files
net-kingdom/canon/schemas/playbook-capability-declaration_v0.1.schema.json

57 lines
1.9 KiB
JSON

{
"$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"}
}
}
}
}