{
    "title": "order object in history collection",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "javaType": "com.sos.joc.model.order.OrderHistoryItem",
    "type": "object",
    "required": [
        "surveyDate",
        "orderId",
        "workflow",
        "startTime",
        "plannedTime",
        "position",
        "sequence",
        "state",
        "orderState",
        "historyId"
    ],
    "properties": {
        "surveyDate": {
            "description": "Value is UTC timestamp in ISO 8601 YYYY-MM-DDThh:mm:ss.sZ or empty",
            "type": "string",
            "format": "date-time"
        },
        "controllerId": {
            "type": "string"
        },
        "orderId": {
            "type": "string"
        },
        "tags": {
            "type": "array",
            "uniqueItems": true,
            "items": {
                "type": "string",
                "pattern": "^[^<>]*$",
                "maxLength": 255,
                "minLength": 1
            }
        },
        "workflow": {
            "description": "absolute path of an object.",
            "type": "string",
            "pattern": "^(/|(/[^/\\\\<>?:\"|*]+)+)$",
            "maxLength": 255,
            "minLength": 1
        },
        "startTime": {
            "description": "Value is UTC timestamp in ISO 8601 YYYY-MM-DDThh:mm:ss.sZ or empty",
            "type": "string",
            "format": "date-time"
        },
        "plannedTime": {
            "description": "Value is UTC timestamp in ISO 8601 YYYY-MM-DDThh:mm:ss.sZ or empty",
            "type": "string",
            "format": "date-time"
        },
        "endTime": {
            "description": "Value is UTC timestamp in ISO 8601 YYYY-MM-DDThh:mm:ss.sZ or empty",
            "type": "string",
            "format": "date-time"
        },
        "position": {
            "type": "string"
        },
        "sequence": {
            "type": "integer",
            "minimum": 0
        },
        "state": {
            "javaType": "com.sos.joc.model.common.HistoryState",
            "type": "object",
            "required": [
                "severity",
                "_text"
            ],
            "properties": {
                "severity": {
                    "description": "0=successful, 1=incomplete, 2=failed with a green/yellow/red representation",
                    "type": "integer"
                },
                "_text": {
                    "javaType": "com.sos.joc.model.common.HistoryStateText",
                    "type": "string",
                    "enum": [
                        "SUCCESSFUL",
                        "INCOMPLETE",
                        "FAILED"
                    ]
                }
            }
        },
        "orderState": {
            "javaType": "com.sos.joc.model.order.OrderState",
            "type": "object",
            "required": [
                "severity",
                "_text"
            ],
            "properties": {
                "severity": {
                    "type": "integer"
                },
                "_text": {
                    "javaType": "com.sos.joc.model.order.OrderStateText",
                    "type": "string",
                    "enum": [
                        "PLANNED",
                        "PENDING",
                        "SCHEDULED",
                        "RUNNING",
                        "INPROGRESS",
                        "PROMPTING",
                        "SUSPENDED",
                        "FAILED",
                        "WAITING",
                        "BLOCKED",
                        "CANCELLED",
                        "FINISHED",
                        "BROKEN",
                        "UNKNOWN"
                    ]
                },
                "_reason": {
                    "javaType": "com.sos.joc.model.order.OrderWaitingReason",
                    "type": "string",
                    "enum": [
                        "DELAYED_AFTER_ERROR",
                        "FORKED",
                        "EXPECTING_NOTICES",
                        "WAITING_FOR_LOCK",
                        "BETWEEN_CYCLES"
                    ]
                }
            },
            "additionalProperties": false
        },
        "historyId": {
            "type": "number",
            "format": "utc-millisec",
            "minimum": 0
        },
        "children": {
            "type": "array",
            "items": {
                "description": "orderHistoryItem-schema.json"
            }
        },
        "arguments": {
            "description": "a map for arbitrary key-value pairs",
            "javaType": "com.sos.inventory.model.common.Variables",
            "type": "object",
            "additionalProperties": true
        }
    }
}