{
    "properties": {
        "hls-edge": {
            "properties": {
                "constraints": {
                    "default": "hostname:UNIQUE",
                    "description": "Deploy hls-edge only on nodes with this constraints.",
                    "type": "string"
                },
                "cpus": {
                    "default": 0.1,
                    "description": "CPU shares to allocate to each hls-edge instance.",
                    "type": "number"
                },
                "mem": {
                    "default": 128.0,
                    "description": "Memory (MB) to allocate to each hls-edge task.",
                    "minimum": 64.0,
                    "type": "number"
                },
                "role": {
                    "default": "*",
                    "description": "Deploy hls-edge only on nodes with this role.",
                    "type": "string"
                }
            },
            "required": [
                "cpus"
            ],
            "type": "object"
        },
        "hls-origin": {
            "properties": {
                "constraints": {
                    "default": "",
                    "description": "Deploy hls-origin only on nodes with this constraints.",
                    "type": "string"
                },
                "cpus": {
                    "default": 0.1,
                    "description": "CPU shares to allocate to each hls-origin instance.",
                    "type": "number"
                },
                "mem": {
                    "default": 128.0,
                    "description": "Memory (MB) to allocate to each hls-origin task.",
                    "minimum": 64.0,
                    "type": "number"
                },
                "role": {
                    "default": "*",
                    "description": "Deploy hls-origin only on nodes with this role.",
                    "type": "string"
                }
            },
            "required": [
                "cpus"
            ],
            "type": "object"
        },
        "rtmp-origin": {
            "properties": {
                "constraints": {
                    "default": "hostname:UNIQUE",
                    "description": "Deploy rtmp-origin only on nodes with this constraints.",
                    "type": "string"
                },
                "cpus": {
                    "default": 0.1,
                    "description": "CPU shares to allocate to each rtmp-origin instance.",
                    "type": "number"
                },
                "mem": {
                    "default": 128.0,
                    "description": "Memory (MB) to allocate to each rtmp-origin task.",
                    "minimum": 64.0,
                    "type": "number"
                },
                "role": {
                    "default": "*",
                    "description": "Deploy rtmp-origin only on nodes with this role.",
                    "type": "string"
                }
            },
            "required": [
                "cpus"
            ],
            "type": "object"
        },
        "rtmp-transcoder": {
            "properties": {
                "constraints": {
                    "default": "",
                    "description": "Deploy rtmp-transcoder only on nodes with this constraints.",
                    "type": "string"
                },
                "cpus": {
                    "default": 0.1,
                    "description": "CPU shares to allocate to each rtmp-transcoder instance.",
                    "type": "number"
                },
                "mem": {
                    "default": 128.0,
                    "description": "Memory (MB) to allocate to each rtmp-transcoder task.",
                    "minimum": 64.0,
                    "type": "number"
                },
                "role": {
                    "default": "*",
                    "description": "Deploy rtmp-transcoder only on nodes with this role.",
                    "type": "string"
                }
            },
            "required": [
                "cpus"
            ],
            "type": "object"
        },
        "service": {
            "properties": {
                "constraints": {
                    "default": "hostname:UNIQUE",
                    "description": "Deploy dispatcher only on nodes with this role.",
                    "type": "string"
                },
                "cpus": {
                    "default": 0.1,
                    "description": "CPU shares to allocate to each dispatcher instance.",
                    "type": "number"
                },
                "instances": {
                    "default": 1,
                    "description": "Number of dispatcher instances to run.",
                    "minimum": 1,
                    "type": "integer"
                },
                "mem": {
                    "default": 128.0,
                    "description": "Memory (MB) to allocate to each dispatcher task.",
                    "minimum": 64.0,
                    "type": "number"
                },
                "name": {
                    "default": "dispatcher",
                    "description": "Name for this dispatcher application",
                    "type": "string"
                },
                "role": {
                    "default": "*",
                    "description": "Deploy dispatcher only on nodes with this role.",
                    "type": "string"
                }
            },
            "required": [
                "instances"
            ],
            "type": "object"
        }
    },
    "type": "object"
}