{
    "title": "jobChainNode (permanent part)",
    "id": "schemas/jobchain/jobChainNode_p",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "javaType": "com.sos.joc.model.jobChain.JobChainNodeP",
    "type": "object",
    "oneOf": [
        {
            "description": "job chain node object with assigned a job",
            "required": [
                "name",
                "nextNode",
                "errorNode",
                "job",
                "level"
            ]
        },
        {
            "description": "job chain node object with assigned a job chain",
            "required": [
                "name",
                "nextNode",
                "errorNode",
                "jobChain"
            ]
        }
    ],
    "properties": {
        "name": {
            "type": "string"
        },
        "nextNode": {
            "type": "string"
        },
        "errorNode": {
            "type": "string"
        },
        "job": {
            "javaType": "com.sos.joc.model.jobChain.JobChainNodeJobP",
            "type": "object",
            "required": [
                "path"
            ],
            "properties": {
                "path": {
                    "id": "schemas/common/path",
                    "description": "absolute path based on live folder of a JobScheduler object.",
                    "type": "string",
                    "pattern": "/([^/]+/)*[^/]+"
                },
                "processClass": {
                    "id": "schemas/common/path",
                    "description": "absolute path based on live folder of a JobScheduler object.",
                    "type": "string",
                    "pattern": "/([^/]+/)*[^/]+"
                },
                "documentation": {
                    "id": "schemas/common/path",
                    "description": "absolute path based on live folder of a JobScheduler object.",
                    "type": "string",
                    "pattern": "/([^/]+/)*[^/]+"
                }
            }
        },
        "jobChain": {
            "description": "job chain object is included in nestedJobChains collection",
            "javaType": "com.sos.joc.model.jobChain.JobChainNodeJobChainP",
            "type": "object",
            "required": [
                "path"
            ],
            "properties": {
                "path": {
                    "id": "schemas/common/path",
                    "description": "absolute path based on live folder of a JobScheduler object.",
                    "type": "string",
                    "pattern": "/([^/]+/)*[^/]+"
                },
                "documentation": {
                    "id": "schemas/common/path",
                    "description": "absolute path based on live folder of a JobScheduler object.",
                    "type": "string",
                    "pattern": "/([^/]+/)*[^/]+"
                }
            }
        },
        "level": {
            "description": "Only relevant for job chain with splits and syncs. For example to imagine splits/sync in the job chain list view with different indents",
            "type": "integer"
        },
        "onError": {
            "description": "possible values are 'suspend', 'setback' or it isn't set",
            "type": "string"
        },
        "delay": {
            "id": "schemas/common/nonNegativeInteger",
            "type": "integer",
            "minimum": 0
        },
        "remove": {
            "description": "for file order sink",
            "type": "boolean"
        },
        "move": {
            "description": "for file order sink, a directory path is expected",
            "type": "string"
        }
    }
}