{
    "title": "order history log entry",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "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
}