{
    "title": "running order log",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "javaType": "com.sos.joc.model.order.RunningOrderLogEvent",
    "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
        },
        "logEvent": {
            "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"
                },
                "agentUrl": {
                    "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.Lock",
                    "properties": {
                        "errorState": {
                            "type": "string"
                        },
                        "errorReason": {
                            "type": "string"
                        },
                        "errorCode": {
                            "type": "string"
                        },
                        "errorText": {
                            "type": "string"
                        }
                    },
                    "additionalProperties": false
                },
                "lock": {
                    "type": "object",
                    "required": [
                        "lockName",
                        "limit"
                    ],
                    "properties": {
                        "lockName": {
                            "alias": "lockId,lockPath",
                            "type": "string",
                            "javaType": "com.sos.joc.model.history.order.Lock"
                        },
                        "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
        }
    }
}