{
    "title": "job object (permanent part)",
    "id": "schemas/job/job_p",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "javaType": "com.sos.joc.model.job.JobP",
    "type": "object",
    "oneOf": [
        {
            "description": "as child of nodes only path is required and processClass is optional",
            "required": [
                "path"
            ]
        },
        {
            "description": "compact=true then ONLY required fields are responded and title, processClass are optional",
            "required": [
                "surveyDate",
                "path",
                "name",
                "isOrderJob",
                "isShellJob",
                "usedInJobChains",
                "estimatedDuration",
                "maxTasks",
                "hasDescription"
            ]
        }
    ],
    "properties": {
        "surveyDate": {
            "id": "schemas/common/surveyDate_p",
            "description": "Date of the inventory data. Value is UTC timestamp in ISO 8601 YYYY-MM-DDThh:mm:ss.sZ",
            "type": "string",
            "format": "date-time"
        },
        "path": {
            "id": "schemas/common/path",
            "description": "absolute path based on live folder of a JobScheduler object.",
            "type": "string",
            "pattern": "/([^/]+/)*[^/]+"
        },
        "isOrderJob": {
            "type": "boolean"
        },
        "isShellJob": {
            "type": "boolean"
        },
        "name": {
            "type": "string"
        },
        "title": {
            "type": "string"
        },
        "estimatedDuration": {
            "id": "schemas/common/nonNegativeInteger",
            "type": "integer",
            "minimum": 0
        },
        "processClass": {
            "id": "schemas/common/path",
            "description": "absolute path based on live folder of a JobScheduler object.",
            "type": "string",
            "pattern": "/([^/]+/)*[^/]+"
        },
        "maxTasks": {
            "id": "schemas/common/nonNegativeInteger",
            "type": "integer",
            "minimum": 0
        },
        "locks": {
            "id": "schemas/job/locks_p",
            "type": "array",
            "items": {
                "javaType": "com.sos.joc.model.job.LockUseP",
                "type": "object",
                "required": [
                    "path"
                ],
                "properties": {
                    "path": {
                        "id": "schemas/common/path",
                        "description": "absolute path based on live folder of a JobScheduler object.",
                        "type": "string",
                        "pattern": "/([^/]+/)*[^/]+"
                    }
                }
            }
        },
        "usedInJobChains": {
            "id": "schemas/common/nonNegativeInteger",
            "type": "integer",
            "minimum": 0
        },
        "jobChains": {
            "description": "Only relevant for order jobs when called /jobs/p/... or job/p/...",
            "type": "array",
            "items": {
                "id": "schemas/common/path",
                "description": "absolute path based on live folder of a JobScheduler object.",
                "type": "string",
                "pattern": "/([^/]+/)*[^/]+"
            }
        },
        "hasDescription": {
            "type": "boolean"
        },
        "configurationDate": {
            "id": "schemas/common/timestamp",
            "description": "Value is UTC timestamp in ISO 8601 YYYY-MM-DDThh:mm:ss.sZ or empty",
            "type": "string",
            "format": "date-time"
        }
    }
}