{
    "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,
                "minLength": 1
            },
            "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": {
                    "javaType": "com.sos.joc.model.history.order.OrderLogEntryLogLevel",
                    "type": "string",
                    "enum": [
                        "MAIN",
                        "DETAIL",
                        "INFO",
                        "ERROR",
                        "SUCCESS"
                    ],
                    "javaEnumNames": [
                        "MAIN",
                        "DETAIL",
                        "INFO",
                        "ERROR",
                        "SUCCESS"
                    ]
                },
                "logEvent": {
                    "javaType": "com.sos.controller.model.event.EventType",
                    "type": "string",
                    "enum": [
                        "VersionAdded",
                        "FileBasedChanged",
                        "ControllerReady",
                        "AgentReady",
                        "OrderAdded",
                        "OrderAttachable",
                        "OrderAttached",
                        "OrderStarted",
                        "OrderTransferredToAgent",
                        "OrderProcessingStarted",
                        "OrderStdoutWritten",
                        "OrderStderrWritten",
                        "OrderProcessed",
                        "OrderResumed",
                        "OrderResumeMarked",
                        "OrderResumptionMarked",
                        "OrderForked",
                        "OrderJoined",
                        "OrderOffered",
                        "OrderRetrying",
                        "OrderAwaiting",
                        "OrderMoved",
                        "OrderDetachable",
                        "OrderDetached",
                        "OrderOutcomeAdded",
                        "OrderFailedinFork",
                        "OrderFailed",
                        "OrderStopped",
                        "OrderCatched",
                        "OrderCaught",
                        "OrderAwoke",
                        "OrderSuspended",
                        "OrderSuspendMarked",
                        "OrderSuspensionMarked",
                        "OrderBroken",
                        "OrderCancelled",
                        "OrderFinished",
                        "OrderLocksAcquired",
                        "OrderLocksQueued",
                        "OrderLocksReleased",
                        "OrderNoticesConsumed",
                        "OrderNoticesConsumptionStarted",
                        "OrderNoticesRead",
                        "OrderNoticesExpected",
                        "OrderNoticePosted",
                        "OrderPrompted",
                        "OrderPromptAnswered",
                        "OrderCyclingPrepared"
                    ],
                    "javaEnumNames": [
                        "VersionAdded",
                        "FileBasedChanged",
                        "ControllerReady",
                        "AgentReady",
                        "OrderAdded",
                        "OrderAttachable",
                        "OrderAttached",
                        "OrderStarted",
                        "OrderTransferredToAgent",
                        "OrderProcessingStarted",
                        "OrderStdoutWritten",
                        "OrderStderrWritten",
                        "OrderProcessed",
                        "OrderResumed",
                        "OrderResumeMarked",
                        "OrderResumptionMarked",
                        "OrderForked",
                        "OrderJoined",
                        "OrderOffered",
                        "OrderRetrying",
                        "OrderAwaiting",
                        "OrderMoved",
                        "OrderDetachable",
                        "OrderDetached",
                        "OrderOutcomeAdded",
                        "OrderFailedinFork",
                        "OrderFailed",
                        "OrderStopped",
                        "OrderCatched",
                        "OrderCaught",
                        "OrderAwoke",
                        "OrderSuspended",
                        "OrderSuspendMarked",
                        "OrderSuspensionMarked",
                        "OrderBroken",
                        "OrderCancelled",
                        "OrderFinished",
                        "OrderLocksAcquired",
                        "OrderLocksQueued",
                        "OrderLocksReleased",
                        "OrderNoticesConsumed",
                        "OrderNoticesConsumptionStarted",
                        "OrderNoticesRead",
                        "OrderNoticesExpected",
                        "OrderNoticePosted",
                        "OrderPrompted",
                        "OrderPromptAnswered",
                        "OrderCyclingPrepared"
                    ]
                },
                "position": {
                    "type": "string"
                },
                "label": {
                    "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"
                },
                "returnMessage": {
                    "type": "string"
                },
                "msg": {
                    "type": "string"
                },
                "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
                },
                "locks": {
                    "type": "array",
                    "items": {
                        "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
                },
                "expectNotices": {
                    "javaType": "com.sos.joc.model.history.order.notice.ExpectNotices",
                    "type": "object",
                    "oneOf": [
                        {
                            "required": [
                                "consumed"
                            ]
                        },
                        {
                            "required": [
                                "waitingFor"
                            ]
                        }
                    ],
                    "properties": {
                        "consumed": {
                            "type": "string"
                        },
                        "waitingFor": {
                            "type": "array",
                            "items": {
                                "javaType": "com.sos.joc.model.history.order.notice.BaseNotice",
                                "type": "object",
                                "required": [
                                    "boardName",
                                    "id"
                                ],
                                "properties": {
                                    "boardName": {
                                        "type": "string"
                                    },
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "additionalProperties": false
                            },
                            "additionalProperties": false
                        }
                    },
                    "additionalProperties": false
                },
                "consumeNotices": {
                    "javaType": "com.sos.joc.model.history.order.notice.ConsumeNotices",
                    "type": "object",
                    "oneOf": [
                        {
                            "required": [
                                "consumed"
                            ]
                        },
                        {
                            "required": [
                                "consuming"
                            ]
                        }
                    ],
                    "properties": {
                        "consumed": {
                            "type": "boolean"
                        },
                        "consuming": {
                            "type": "array",
                            "items": {
                                "javaType": "com.sos.joc.model.history.order.notice.BaseNotice",
                                "type": "object",
                                "required": [
                                    "boardName",
                                    "id"
                                ],
                                "properties": {
                                    "boardName": {
                                        "type": "string"
                                    },
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "additionalProperties": false
                            },
                            "additionalProperties": false
                        }
                    },
                    "additionalProperties": false
                },
                "postNotice": {
                    "javaType": "com.sos.joc.model.history.order.notice.PostNotice",
                    "type": "object",
                    "extends": {
                        "javaType": "com.sos.joc.model.history.order.notice.BaseNotice",
                        "type": "object",
                        "required": [
                            "boardName",
                            "id"
                        ],
                        "properties": {
                            "boardName": {
                                "type": "string"
                            },
                            "id": {
                                "type": "string"
                            }
                        },
                        "additionalProperties": false
                    },
                    "required": [
                        "boardName",
                        "id",
                        "endOfLife"
                    ],
                    "properties": {
                        "endOfLife": {
                            "type": "string"
                        }
                    },
                    "additionalProperties": false
                },
                "retrying": {
                    "javaType": "com.sos.joc.model.history.order.retry.Retrying",
                    "type": "object",
                    "properties": {
                        "delayedUntil": {
                            "type": "string"
                        }
                    },
                    "additionalProperties": false
                },
                "caught": {
                    "javaType": "com.sos.joc.model.history.order.caught.Caught",
                    "type": "object",
                    "required": [
                        "cause"
                    ],
                    "properties": {
                        "cause": {
                            "javaType": "com.sos.joc.model.history.order.caught.CaughtCause",
                            "type": "string",
                            "enum": [
                                "Unknown",
                                "TryInstruction",
                                "Retry"
                            ],
                            "javaEnumNames": [
                                "Unknown",
                                "TryInstruction",
                                "Retry"
                            ]
                        }
                    },
                    "additionalProperties": false
                },
                "moved": {
                    "javaType": "com.sos.joc.model.history.order.moved.Moved",
                    "type": "object",
                    "required": [
                        "to"
                    ],
                    "properties": {
                        "to": {
                            "javaType": "com.sos.joc.model.history.order.moved.MovedTo",
                            "type": "object",
                            "properties": {
                                "position": {
                                    "type": "string"
                                }
                            },
                            "additionalProperties": false
                        },
                        "skipped": {
                            "javaType": "com.sos.joc.model.history.order.moved.MovedSkipped",
                            "type": "object",
                            "required": [
                                "instruction",
                                "reason"
                            ],
                            "properties": {
                                "instruction": {
                                    "javaType": "com.sos.joc.model.history.order.OrderLogEntryInstruction",
                                    "type": "object",
                                    "oneOf": [
                                        {
                                            "required": [
                                                "instruction"
                                            ]
                                        },
                                        {
                                            "required": [
                                                "job"
                                            ]
                                        }
                                    ],
                                    "properties": {
                                        "instruction": {
                                            "type": "string"
                                        },
                                        "job": {
                                            "type": "string"
                                        }
                                    },
                                    "additionalProperties": false
                                },
                                "reason": {
                                    "javaType": "com.sos.joc.model.history.order.moved.MovedSkippedReason",
                                    "type": "string",
                                    "enum": [
                                        "Unknown",
                                        "SkippedDueToWorkflowPathControl",
                                        "NoAdmissionPeriodStart"
                                    ],
                                    "javaEnumNames": [
                                        "Unknown",
                                        "SkippedDueToWorkflowPathControl",
                                        "NoAdmissionPeriodStart"
                                    ]
                                }
                            },
                            "additionalProperties": false
                        },
                        "waitingForAdmission": {
                            "javaType": "com.sos.joc.model.history.order.common.WaitingForAdmission",
                            "type": "object",
                            "properties": {
                                "entries": {
                                    "type": "array",
                                    "items": {
                                        "type": "string"
                                    }
                                }
                            },
                            "additionalProperties": false
                        }
                    },
                    "additionalProperties": false
                },
                "attached": {
                    "javaType": "com.sos.joc.model.history.order.attached.Attached",
                    "type": "object",
                    "properties": {
                        "waitingForAdmission": {
                            "javaType": "com.sos.joc.model.history.order.common.WaitingForAdmission",
                            "type": "object",
                            "properties": {
                                "entries": {
                                    "type": "array",
                                    "items": {
                                        "type": "string"
                                    }
                                }
                            },
                            "additionalProperties": false
                        }
                    },
                    "additionalProperties": false
                },
                "stopped": {
                    "javaType": "com.sos.joc.model.history.order.OrderLogEntryInstruction",
                    "type": "object",
                    "oneOf": [
                        {
                            "required": [
                                "instruction"
                            ]
                        },
                        {
                            "required": [
                                "job"
                            ]
                        }
                    ],
                    "properties": {
                        "instruction": {
                            "type": "string"
                        },
                        "job": {
                            "type": "string"
                        }
                    },
                    "additionalProperties": false
                },
                "resumed": {
                    "javaType": "com.sos.joc.model.history.order.OrderLogEntryInstruction",
                    "type": "object",
                    "oneOf": [
                        {
                            "required": [
                                "instruction"
                            ]
                        },
                        {
                            "required": [
                                "job"
                            ]
                        }
                    ],
                    "properties": {
                        "instruction": {
                            "type": "string"
                        },
                        "job": {
                            "type": "string"
                        }
                    },
                    "additionalProperties": false
                },
                "arguments": {
                    "description": "a map for arbitrary key-value pairs",
                    "javaType": "com.sos.inventory.model.common.Variables",
                    "type": "object",
                    "additionalProperties": true
                },
                "returnValues": {
                    "description": "a map for arbitrary key-value pairs",
                    "javaType": "com.sos.inventory.model.common.Variables",
                    "type": "object",
                    "additionalProperties": true
                },
                "question": {
                    "type": "string"
                },
                "cycle": {
                    "javaType": "com.sos.joc.model.history.order.cycle.Cycle",
                    "type": "object",
                    "properties": {
                        "prepared": {
                            "javaType": "com.sos.joc.model.history.order.cycle.CyclePrepared",
                            "type": "object",
                            "properties": {
                                "next": {
                                    "type": "string"
                                },
                                "end": {
                                    "type": "string"
                                }
                            },
                            "additionalProperties": false
                        }
                    },
                    "additionalProperties": false
                }
            },
            "additionalProperties": false
        }
    }
}