41 lines
1.6 KiB
JSON
41 lines
1.6 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"title": "Minecraft platform configuration v1",
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["schema_version", "pack", "build", "server", "deploy"],
|
|
"properties": {
|
|
"schema_version": { "const": 1 },
|
|
"pack": {
|
|
"type": "object", "additionalProperties": false, "required": ["directory"],
|
|
"properties": { "directory": { "type": "string", "minLength": 1 } }
|
|
},
|
|
"build": {
|
|
"type": "object", "additionalProperties": false, "required": ["output_directory"],
|
|
"properties": { "output_directory": { "type": "string", "minLength": 1 } }
|
|
},
|
|
"server": {
|
|
"type": "object", "additionalProperties": false,
|
|
"required": ["host", "directory", "memory", "port"],
|
|
"properties": {
|
|
"host": { "type": ["string", "null"], "minLength": 1 },
|
|
"directory": { "type": ["string", "null"], "pattern": "^/" },
|
|
"memory": { "type": "string", "pattern": "^[1-9][0-9]*[MG]$" },
|
|
"port": { "type": "integer", "minimum": 1, "maximum": 65535 }
|
|
},
|
|
"oneOf": [
|
|
{ "properties": { "host": { "type": "null" }, "directory": { "type": "null" } } },
|
|
{ "properties": { "host": { "type": "string" }, "directory": { "type": "string" } } }
|
|
]
|
|
},
|
|
"deploy": {
|
|
"type": "object", "additionalProperties": false,
|
|
"required": ["transport", "healthcheck_timeout"],
|
|
"properties": {
|
|
"transport": { "const": "ssh" },
|
|
"healthcheck_timeout": { "type": "integer", "minimum": 1 }
|
|
}
|
|
}
|
|
}
|
|
}
|