{
    "title": "abstract instruction",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "javaType": "com.sos.inventory.model.instruction.Instruction",
    "type": "object",
    "required": [
        "TYPE"
    ],
    "properties": {
        "TYPE": {
            "javaType": "com.sos.inventory.model.instruction.InstructionType",
            "type": "string",
            "enum": [
                "Execute.Named",
                "If",
                "Try",
                "Fork",
                "ForkList",
                "Finish",
                "Fail",
                "Retry",
                "Lock",
                "Prompt",
                "PostNotice",
                "PostNotices",
                "ExpectNotice",
                "ExpectNotices",
                "ImplicitEnd",
                "AddOrder",
                "Cycle"
            ]
        },
        "position": {
            "description": "Actually, each even item is a string, each odd item is an integer",
            "type": "array",
            "items": {
                "anyOf": [
                    {
                        "type": "integer"
                    },
                    {
                        "type": "string"
                    }
                ]
            }
        },
        "positionString": {
            "type": "string",
            "pattern": "^[^<>]*$",
            "maxLength": 255
        },
        "state": {
            "javaType": "com.sos.inventory.model.instruction.InstructionState",
            "type": "object",
            "required": [
                "severity",
                "_text"
            ],
            "properties": {
                "severity": {
                    "type": "integer"
                },
                "_text": {
                    "javaType": "com.sos.inventory.model.instruction.InstructionStateText",
                    "type": "string",
                    "enum": [
                        "SKIPPED",
                        "STOPPED",
                        "STOPPED_AND_SKIPPED"
                    ]
                }
            }
        }
    },
    "additionalProperties": false
}