Files
deb-python-dcos/cli/dcoscli/data/marathon-group-schema.json
Tamar Ben-Shachar 9974396b47 update app json-schema
Copied from marathon, which has validations on the schema.
2015-05-27 19:17:52 -07:00

307 lines
11 KiB
JSON

{
"$schema": "http://json-schema.org/schema#",
"additionalProperties": false,
"definitions": {
"app": {
"additionalProperties": false,
"definitions": {
"pathType": {
"pattern": "^(\\/?((\\.{2})|([a-z0-9\\-]*))($|\\/))*$",
"type": "string"
}
},
"not": {
"allOf": [
{
"required": [
"cmd"
]
},
{
"required": [
"args"
]
}
]
},
"properties": {
"acceptedResourceRoles": {
"items": {
"type": "string"
},
"type": "array"
},
"args": {
"items": {
"type": "string"
},
"type": "array"
},
"backoffFactor": {
"minimum": 1.0,
"type": "number"
},
"backoffSeconds": {
"minimum": 0,
"type": "integer"
},
"cmd": {
"minLength": 1,
"type": "string"
},
"constraints": {},
"container": {
"additionalProperties": false,
"properties": {
"docker": {
"additionalProperties": false,
"properties": {
"forcePullImage": {
"type": "boolean"
},
"image": {
"type": "string"
},
"network": {
"type": "string"
},
"parameters": {
"items": {
"additionalProperties": false,
"properties": {},
"required": [
"key",
"value"
],
"type": "object"
},
"type": "array"
},
"portMappings": {
"items": {
"additionalProperties": false,
"properties": {
"containerPort": {
"maximum": 65535,
"minimum": 0,
"type": "integer"
},
"hostPort": {
"maximum": 65535,
"minimum": 0,
"type": "integer"
},
"protocol": {
"type": "string"
},
"servicePort": {
"maximum": 65535,
"minimum": 0,
"type": "integer"
}
},
"type": "object"
},
"type": "array"
},
"privileged": {
"type": "boolean"
}
},
"required": [
"image"
],
"type": "object"
},
"type": {
"type": "string"
},
"volumes": {
"items": {
"additionalProperties": false,
"properties": {
"containerPath": {
"type": "string"
},
"hostPath": {
"type": "string"
},
"mode": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
},
"cpus": {
"minimum": 0,
"type": "number"
},
"dependencies": {
"items": {
"$ref": "#/definitions/pathType"
},
"type": "array"
},
"disk": {
"minimum": 0,
"type": "number"
},
"env": {
"patternProperties": {
".*": {
"type": "string"
}
},
"type": "object"
},
"executor": {
"pattern": "^(|\\/\\/cmd|\\/?[^\\/]+(\\/[^\\/]+)*)$",
"type": "string"
},
"healthChecks": {
"items": {
"additionalProperties": false,
"properties": {
"command": {
"type": "string"
},
"gracePeriodSeconds": {
"minimum": 0,
"type": "integer"
},
"ignoreHttp1xx": {
"type": "boolean"
},
"intervalSeconds": {
"minimum": 0,
"type": "integer"
},
"maxConsecutiveFailures": {
"minimum": 0,
"type": "integer"
},
"path": {
"type": "string"
},
"portIndex": {
"minimum": 0,
"type": "integer"
},
"protocol": {
"type": "string"
},
"timeoutSeconds": {
"minimum": 0,
"type": "integer"
}
},
"type": "object"
},
"type": "array"
},
"id": {
"pattern": "^(\\/?((\\.{2})|([a-z0-9][a-z0-9\\-]*[a-z0-9]+)|([a-z0-9]*))($|\\/))*$",
"type": "string"
},
"instances": {
"minimum": 0,
"type": "integer"
},
"labels": {
"additionalProperties": {
"type": "string"
},
"type": "object"
},
"maxLaunchDelaySeconds": {
"minimum": 0,
"type": "integer"
},
"mem": {
"minimum": 0,
"type": "number"
},
"ports": {
"items": {
"maximum": 65535,
"minimum": 0,
"type": "integer"
},
"type": "array"
},
"requirePorts": {
"type": "boolean"
},
"storeUrls": {
"items": {
"type": "string"
},
"type": "array"
},
"upgradeStrategy": {
"additionalProperties": false,
"properties": {
"maximumOverCapacity": {
"maximum": 1.0,
"minimum": 0.0,
"type": "number"
},
"minimumHealthCapacity": {
"maximum": 1.0,
"minimum": 0.0,
"type": "number"
}
},
"type": "object"
},
"uris": {
"items": {
"type": "string"
},
"type": "array"
},
"user": {
"type": "string"
},
"version": {
"format": "date-time",
"type": "string"
}
},
"required": [
"id"
],
"type": "object"
}
},
"properties": {
"apps": {
"items": {
"$ref": "#/definitions/app"
},
"type": "array"
},
"dependencies": {
"$ref": "#/definitions/app/properties/dependencies"
},
"groups": {
"items": {
"$ref": "#"
},
"type": "array"
},
"id": {
"$ref": "#/definitions/app/properties/id"
},
"required": [
"id"
]
},
"type": "object"
}