{
    "title": "order history log entries",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "javaType": "com.sos.joc.model.history.order.OrderLogEntries",
    "type": "object",
    "properties": {
        "entries": {
            "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": {
                        "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",
                            "OrderOrderAdded"
                        ],
                        "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",
                            "OrderOrderAdded"
                        ]
                    },
                    "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
                    },
                    "orderAdded": {
                        "javaType": "com.sos.joc.model.history.order.added.OrderAdded",
                        "type": "object",
                        "required": [
                            "workflowPath",
                            "orderId"
                        ],
                        "properties": {
                            "workflowPath": {
                                "type": "string"
                            },
                            "orderId": {
                                "type": "string"
                            },
                            "arguments": {
                                "description": "a map for arbitrary key-value pairs",
                                "javaType": "com.sos.inventory.model.common.Variables",
                                "type": "object",
                                "additionalProperties": true
                            }
                        },
                        "additionalProperties": false
                    }
                },
                "additionalProperties": false
            }
        }
    },
    "additionalProperties": false
}