jx/internal/resource/schemas/document.schema.json
2025-08-25 03:12:08 +00:00

60 lines
1.8 KiB
JSON

{
"$id": "document.schema.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "document",
"type": "object",
"required": [],
"properties": {
"source": {
"type": "string",
"description": "Document URI"
},
"format": {
"$ref": "codec.schema.json"
},
"requires": {
"$ref": "dependencies.schema.json"
},
"imports": {
"type": "array",
"description": "List of other documents to import",
"items": {
"type": "string",
"description": "Document URI"
}
},
"configurations": {
"type": "array",
"description": "Configurations list",
"items": {
"oneOf": [
{ "$ref": "config/block.schema.json" }
]
}
},
"resources": {
"type": "array",
"description": "Resources list",
"items": {
"oneOf": [
{ "$ref": "certificate-declaration.schema.json" },
{ "$ref": "container-declaration.schema.json" },
{ "$ref": "container-network-declaration.schema.json" },
{ "$ref": "container-image-declaration.schema.json" },
{ "$ref": "exec-declaration.schema.json" },
{ "$ref": "file-declaration.schema.json" },
{ "$ref": "group-declaration.schema.json" },
{ "$ref": "http-declaration.schema.json" },
{ "$ref": "iptable-declaration.schema.json" },
{ "$ref": "network-route-declaration.schema.json" },
{ "$ref": "openpgp-keyring-declaration.schema.json" },
{ "$ref": "openpgp-signature-declaration.schema.json" },
{ "$ref": "package-declaration.schema.json" },
{ "$ref": "pki-declaration.schema.json" },
{ "$ref": "user-declaration.schema.json" }
]
}
}
}
}