{
    "id": "http://sport-archive.com/input-schema/workflow#",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "Schemas for workflow section in main config file",
    "type": "object",
    "properties": {
        "domain": {
            "description": "SWF domain",
            "type": "string",
            "minLength": 3,
            "maxLength": 64,
            "pattern": "^[\\w\\.\\- ]+$"
        },
        "decisionTaskList": {
            "description": "Workflow decision tasklist",
            "type": "string",
            "minLength": 3,
            "maxLength": 64,
            "pattern": "^[\\w\\.\\- ]+$"
        },
        "name": {
            "description": "Workflow name",
            "type": "string",
            "minLength": 3,
            "maxLength": 64
        },
        "version": {
            "description": "Workflow version",
            "type": "string",
            "minLength": 1,
            "maxLength": 32,
            "pattern": "^[\\w\\.\\- ]+$"
        },
        "description": {
            "description": "Workflow description",
            "type": "string",
            "minLength": 1,
            "maxLength": 256
        },
        "defaultExecutionStartToCloseTimeout": {
            "description": "Max time from start to close for a workflow",
            "type": "integer",
            "minimum": 1,
            "maximum": 31536000
        },
        "defaultTaskStartToCloseTimeout": {
            "description": "Max time from start to close for a task",
            "type": "integer",
            "minimum": 1,
            "maximum": 31536000
        },
        "defaultChildPolicy": {
            "description": "How to terminated children if workflow is terminated",
            "type": "string",
            "enum": [
                "TERMINATE",
                "REQUEST_CANCEL",
                "ABANDON"
            ]
        }
    },
    "required": [
        "domain",
        "decisionTaskList",
        "name",
        "version",
        "description",
        "defaultExecutionStartToCloseTimeout",
        "defaultTaskStartToCloseTimeout",
        "defaultChildPolicy"
    ],
    "additionalProperties": false
}