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