200 |
Each job chain can have a compact or detailed response. It depends on the parameter compact .
- Required fields are
- surveyDate
- path
- name
- numOfNodes
- The compact view has the following optional fields
- title
- maxOrders
- distributed
- processClass
- fileWatchingProcessClass
- The detailed view has the following required fields in addition to the compact view
- nodes
- endNodes
- configurationDate
- The detailed view has the following optional fields in addition to the compact view
|
|
application/json
model |
example
{
"title": "job chain with delivery date (permanent part)",
"id": "schemas/jobChain/jobChain200_p",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "com.sos.joc.model.jobChain.JobChainP200",
"type": "object",
"required": [
"deliveryDate",
"jobChain"
],
"properties": {
"deliveryDate": {
"id": "schemas/common/deliveryDate",
"description": "Current date of the JOC server/REST service. Value is UTC timestamp in ISO 8601 YYYY-MM-DDThh:mm:ss.sZ",
"type": "string",
"format": "date-time"
},
"jobChain": {
"id": "schemas/jobChain/jobChain_p",
"javaType": "com.sos.joc.model.jobChain.JobChainP",
"type": "object",
"oneOf": [{
"description": "compact=true then ONLY required fields are responded and optional title, maxOrders, distributed, processClass, fileWatchingProcessClass",
"required": [
"surveyDate",
"path",
"name",
"numOfNodes"
]
}, {
"description": "parameter compact=false or unset, all other fields are optional",
"required": [
"surveyDate",
"path",
"name",
"numOfNodes",
"nodes"
]
}],
"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": "/([^/]+/)*[^/]+"
},
"name": {
"type": "string"
},
"title": {
"type": "string"
},
"maxOrders": {
"id": "schemas/common/nonNegativeInteger",
"type": "integer",
"minimum": 0
},
"distributed": {
"type": "boolean"
},
"processClass": {
"type": "string"
},
"fileWatchingProcessClass": {
"type": "string"
},
"numOfNodes": {
"id": "schemas/common/nonNegativeInteger",
"type": "integer",
"minimum": 0
},
"nodes": {
"type": "array",
"minItems": 1,
"items": {
"id": "schemas/jobchain/jobChainNode_p",
"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": "/([^/]+/)*[^/]+"
}
}
},
"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": "/([^/]+/)*[^/]+"
}
}
},
"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"
}
}
}
},
"fileOrderSources": {
"type": "array",
"items": {
"id": "schemas/jobchain/fileWatchingNode_p",
"javaType": "com.sos.joc.model.jobChain.FileWatchingNodeP",
"type": "object",
"required": [
"directory",
"regex"
],
"properties": {
"directory": {
"type": "string"
},
"nextNode": {
"type": "string"
},
"regex": {
"type": "string"
}
}
}
},
"endNodes": {
"description": "real end nodes or file sink nodes",
"type": "array",
"items": {
"id": "schemas/jobchain/endNode",
"javaType": "com.sos.joc.model.jobChain.EndNode",
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string"
}
}
}
},
"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"
}
}
},
"nestedJobChains": {
"type": "array",
"items": {
"id": "schemas/jobChain/jobChain_p",
"javaType": "com.sos.joc.model.jobChain.JobChainP",
"type": "object",
"oneOf": [{
"description": "compact=true then ONLY required fields are responded and optional title, maxOrders, distributed, processClass, fileWatchingProcessClass",
"required": [
"surveyDate",
"path",
"name",
"numOfNodes"
]
}, {
"description": "parameter compact=false or unset, all other fields are optional",
"required": [
"surveyDate",
"path",
"name",
"numOfNodes",
"nodes"
]
}],
"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": "/([^/]+/)*[^/]+"
},
"name": {
"type": "string"
},
"title": {
"type": "string"
},
"maxOrders": {
"id": "schemas/common/nonNegativeInteger",
"type": "integer",
"minimum": 0
},
"distributed": {
"type": "boolean"
},
"processClass": {
"type": "string"
},
"fileWatchingProcessClass": {
"type": "string"
},
"numOfNodes": {
"id": "schemas/common/nonNegativeInteger",
"type": "integer",
"minimum": 0
},
"nodes": {
"type": "array",
"minItems": 1,
"items": {
"id": "schemas/jobchain/jobChainNode_p",
"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": "/([^/]+/)*[^/]+"
}
}
},
"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": "/([^/]+/)*[^/]+"
}
}
},
"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"
}
}
}
},
"fileOrderSources": {
"type": "array",
"items": {
"id": "schemas/jobchain/fileWatchingNode_p",
"javaType": "com.sos.joc.model.jobChain.FileWatchingNodeP",
"type": "object",
"required": [
"directory",
"regex"
],
"properties": {
"directory": {
"type": "string"
},
"nextNode": {
"type": "string"
},
"regex": {
"type": "string"
}
}
}
},
"endNodes": {
"description": "real end nodes or file sink nodes",
"type": "array",
"items": {
"id": "schemas/jobchain/endNode",
"javaType": "com.sos.joc.model.jobChain.EndNode",
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string"
}
}
}
},
"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"
}
}
}
}
}
}
{ "jobChain": { "path": "/examples/56_NestedJobChains/JobChainB", "name": "JobChainB", "numOfNodes": 4, "configurationDate": "2016-09-23T11:13:48Z", "title": "JobChainB", "endNodes": [{ "name": "Success" }, { "name": "Error" }], "nodes": [{ "nextNode": "2", "name": "1", "job": { "jobChains": [ "/examples/56_NestedJobChains/JobChainB" ], "name": "JobB100", "isOrderJob": true, "maxTasks": 1, "configurationDate": "2016-09-23T11:13:48Z", "title": "Shell Job", "usedInJobChains": 1, "path": "/examples/56_NestedJobChains/JobB100", "surveyDate": "2016-09-23T11:13:48Z", "estimatedDuration": 2 }, "errorNode": "Error" }, { "nextNode": "3", "name": "2", "job": { "jobChains": [ "/examples/56_NestedJobChains/JobChainB" ], "name": "JobB200", "isOrderJob": true, "maxTasks": 1, "configurationDate": "2016-09-23T11:13:48Z", "title": "Shell Job", "usedInJobChains": 1, "path": "/examples/56_NestedJobChains/JobB200", "surveyDate": "2016-09-23T11:13:48Z", "estimatedDuration": 2 }, "errorNode": "Error" }, { "nextNode": "4", "name": "3", "job": { "jobChains": [ "/examples/56_NestedJobChains/JobChainB" ], "name": "JobB300", "isOrderJob": true, "maxTasks": 1, "configurationDate": "2016-09-23T11:13:48Z", "title": "Shell Job", "usedInJobChains": 1, "path": "/examples/56_NestedJobChains/JobB300", "surveyDate": "2016-09-23T11:13:48Z", "estimatedDuration": 2 }, "errorNode": "Error" }, { "nextNode": "Success", "name": "4", "job": { "jobChains": [ "/examples/56_NestedJobChains/JobChainB" ], "name": "JobB400", "isOrderJob": true, "maxTasks": 1, "configurationDate": "2016-09-23T11:13:48Z", "title": "Shell Job", "usedInJobChains": 1, "path": "/examples/56_NestedJobChains/JobB400", "surveyDate": "2016-09-23T11:13:48Z", "estimatedDuration": 2 }, "errorNode": "Error" }], "surveyDate": "2016-09-23T11:13:48Z" }, "deliveryDate": "2016-09-23T11:13:47Z" }
{
"jobChain": {
"path": "/examples/56_NestedJobChains/JobChainB",
"name": "JobChainB",
"numOfNodes": 4,
"configurationDate": "2016-09-23T11:13:48Z",
"title": "JobChainB",
"endNodes": [{
"name": "Success"
}, {
"name": "Error"
}],
"nodes": [{
"nextNode": "2",
"name": "1",
"job": {
"jobChains": [
"/examples/56_NestedJobChains/JobChainB"
],
"name": "JobB100",
"isOrderJob": true,
"maxTasks": 1,
"configurationDate": "2016-09-23T11:13:48Z",
"title": "Shell Job",
"usedInJobChains": 1,
"path": "/examples/56_NestedJobChains/JobB100",
"surveyDate": "2016-09-23T11:13:48Z",
"estimatedDuration": 2
},
"errorNode": "Error"
}, {
"nextNode": "3",
"name": "2",
"job": {
"jobChains": [
"/examples/56_NestedJobChains/JobChainB"
],
"name": "JobB200",
"isOrderJob": true,
"maxTasks": 1,
"configurationDate": "2016-09-23T11:13:48Z",
"title": "Shell Job",
"usedInJobChains": 1,
"path": "/examples/56_NestedJobChains/JobB200",
"surveyDate": "2016-09-23T11:13:48Z",
"estimatedDuration": 2
},
"errorNode": "Error"
}, {
"nextNode": "4",
"name": "3",
"job": {
"jobChains": [
"/examples/56_NestedJobChains/JobChainB"
],
"name": "JobB300",
"isOrderJob": true,
"maxTasks": 1,
"configurationDate": "2016-09-23T11:13:48Z",
"title": "Shell Job",
"usedInJobChains": 1,
"path": "/examples/56_NestedJobChains/JobB300",
"surveyDate": "2016-09-23T11:13:48Z",
"estimatedDuration": 2
},
"errorNode": "Error"
}, {
"nextNode": "Success",
"name": "4",
"job": {
"jobChains": [
"/examples/56_NestedJobChains/JobChainB"
],
"name": "JobB400",
"isOrderJob": true,
"maxTasks": 1,
"configurationDate": "2016-09-23T11:13:48Z",
"title": "Shell Job",
"usedInJobChains": 1,
"path": "/examples/56_NestedJobChains/JobB400",
"surveyDate": "2016-09-23T11:13:48Z",
"estimatedDuration": 2
},
"errorNode": "Error"
}],
"surveyDate": "2016-09-23T11:13:48Z"
},
"deliveryDate": "2016-09-23T11:13:47Z"
}
|