{ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "http://deployer.org/schema.json#", "type": "object", "additionalProperties": false, "properties": { "version": { "type": "string" }, "import": { "oneOf": [ { "type": "string" }, { "type": "array", "items": { "type": "string" } } ] }, "config": { "type": "object" }, "hosts": { "type": "object", "patternProperties": { "^": { "oneOf": [ { "type": "object", "properties": { "local": { "type": "boolean" } } }, { "type": "null" } ] } } }, "tasks": { "type": "object", "patternProperties": { "^": { "oneOf": [ { "type": "array", "items": { "type": "object", "properties": { "cd": { "type": "string" }, "run": { "type": "string" }, "run_locally": { "type": "string" }, "upload": { "type": "object", "required": [ "src", "dest" ], "properties": { "src": { "oneOf": [ { "type": "string" }, { "type": "array", "items": { "type": "string" } } ] }, "dest": { "type": "string" } } }, "download": { "type": "object", "required": [ "src", "dest" ], "properties": { "src": { "type": "string" }, "dest": { "type": "string" } } }, "desc": { "type": "string" }, "once": { "type": "boolean" }, "hidden": { "type": "boolean" }, "limit": { "type": "number" }, "select": { "type": "string" } } } }, { "type": "array", "items": { "type": "string" } } ] } } }, "before": { "type": "object" }, "after": { "type": "object" } } }