{
    "title": "running order log",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "javaType": "com.sos.joc.model.order.RunningOrderLogEvents",
    "type": "object",
    "extends": {
        "javaType": "com.sos.joc.model.order.OrderRunningLogFilter",
        "type": "object",
        "required": [
            "controllerId",
            "historyId",
            "eventId"
        ],
        "properties": {
            "controllerId": {
                "type": "string",
                "pattern": "^[^/\\<>?:\"|*]*$",
                "maxLength": 100
            },
            "historyId": {
                "type": "number",
                "format": "utc-millisec",
                "minimum": 0
            },
            "eventId": {
                "type": "number",
                "format": "utc-millisec",
                "minimum": 0
            }
        }
    },
    "required": [
        "complete"
    ],
    "properties": {
        "complete": {
            "type": "boolean",
            "default": false
        },
        "logEvents": {
            "type": "array",
            "items": {
                "javaType": "com.sos.joc.model.history.order.OrderLogEntry",
                "type": "object",
                "required": [
                    "controllerDatetime",
                    "orderId",
                    "logLevel",
                    "logEvent",
                    "position"
                ],
                "properties": {
                    "controllerDatetime": {
                        "type": "string"
                    },
                    "agentDatetime": {
                        "type": "string"
                    },
                    "orderId": {
                        "type": "string"
                    },
                    "logLevel": {
                        "type": "string"
                    },
                    "logEvent": {
                        "javaType": "com.sos.controller.model.event.EventType",
                        "type": "string",
                        "enum": [
                            "VersionAdded",
                            "FileBasedChanged",
                            "ControllerReady",
                            "AgentReady",
                            "OrderAdded",
                            "OrderAttachable",
                            "OrderStarted",
                            "OrderTransferredToAgent",
                            "OrderProcessingStarted",
                            "OrderStdoutWritten",
                            "OrderStderrWritten",
                            "OrderProcessed",
                            "OrderResumed",
                            "OrderResumeMarked",
                            "OrderForked",
                            "OrderJoined",
                            "OrderOffered",
                            "OrderRetrying",
                            "OrderAwaiting",
                            "OrderMoved",
                            "OrderDetachable",
                            "OrderDetached",
                            "OrderFailed",
                            "OrderCatched",
                            "OrderAwoke",
                            "OrderFailedinFork",
                            "OrderSuspended",
                            "OrderSuspendMarked",
                            "OrderBroken",
                            "OrderCancelled",
                            "OrderFinished",
                            "OrderLockAcquired",
                            "OrderLockQueued",
                            "OrderLockReleased"
                        ],
                        "javaEnumNames": [
                            "VersionAdded",
                            "FileBasedChanged",
                            "ControllerReady",
                            "AgentReady",
                            "OrderAdded",
                            "OrderAttachable",
                            "OrderStarted",
                            "OrderTransferredToAgent",
                            "OrderProcessingStarted",
                            "OrderStdoutWritten",
                            "OrderStderrWritten",
                            "OrderProcessed",
                            "OrderResumed",
                            "OrderResumeMarked",
                            "OrderForked",
                            "OrderJoined",
                            "OrderOffered",
                            "OrderRetrying",
                            "OrderAwaiting",
                            "OrderMoved",
                            "OrderDetachable",
                            "OrderDetached",
                            "OrderFailed",
                            "OrderCatched",
                            "OrderAwoke",
                            "OrderFailedinFork",
                            "OrderSuspended",
                            "OrderSuspendMarked",
                            "OrderBroken",
                            "OrderCancelled",
                            "OrderFinished",
                            "OrderLockAcquired",
                            "OrderLockQueued",
                            "OrderLockReleased"
                        ]
                    },
                    "position": {
                        "type": "string"
                    },
                    "agentId": {
                        "alias": "agentPath",
                        "type": "string"
                    },
                    "agentName": {
                        "type": "string"
                    },
                    "agentUrl": {
                        "type": "string"
                    },
                    "subagentClusterId": {
                        "type": "string"
                    },
                    "job": {
                        "type": "string"
                    },
                    "taskId": {
                        "type": "number",
                        "format": "utc-millisec",
                        "minimum": 0
                    },
                    "returnCode": {
                        "type": "number",
                        "format": "utc-millisec"
                    },
                    "error": {
                        "type": "object",
                        "javaType": "com.sos.joc.model.history.order.OrderLogEntryError",
                        "properties": {
                            "errorState": {
                                "type": "string"
                            },
                            "errorReason": {
                                "type": "string"
                            },
                            "errorCode": {
                                "type": "string"
                            },
                            "errorText": {
                                "type": "string"
                            }
                        },
                        "additionalProperties": false
                    },
                    "lock": {
                        "type": "object",
                        "javaType": "com.sos.joc.model.history.order.Lock",
                        "required": [
                            "lockName",
                            "limit"
                        ],
                        "properties": {
                            "lockName": {
                                "alias": "lockId,lockPath",
                                "type": "string"
                            },
                            "limit": {
                                "type": "integer",
                                "minimum": 0,
                                "default": 1
                            },
                            "count": {
                                "type": "integer"
                            },
                            "lockState": {
                                "type": "object",
                                "javaType": "com.sos.joc.model.history.order.LockState",
                                "properties": {
                                    "orderIds": {
                                        "type": "string"
                                    },
                                    "queuedOrderIds": {
                                        "type": "string"
                                    }
                                },
                                "additionalProperties": false
                            }
                        },
                        "additionalProperties": false
                    }
                },
                "additionalProperties": false
            }
        }
    }
}