{
    "title": "changes",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "javaType": "com.sos.joc.model.inventory.changes.ShowChangesFilter",
    "type": "object",
    "properties": {
        "names": {
            "type": "array",
            "uniqueItems": true,
            "items": {
                "type": "string",
                "pattern": "^[^<>]*$",
                "maxLength": 100
            }
        },
        "states": {
            "type": "array",
            "uniqueItems": true,
            "items": {
                "javaType": "com.sos.joc.model.inventory.changes.common.ChangeState",
                "type": "string",
                "enum": [
                    "OPEN",
                    "CLOSED",
                    "PUBLISHED"
                ]
            }
        },
        "owner": {
            "type": "string",
            "pattern": "^[^<>]*$",
            "maxLength": 255
        },
        "lastPublishedBy": {
            "type": "string",
            "pattern": "^[^<>]*$",
            "maxLength": 255
        },
        "created": {
            "javaType": "com.sos.joc.model.inventory.changes.common.Timespan",
            "type": "object",
            "required": [
                "from"
            ],
            "properties": {
                "from": {
                    "description": "ISO format yyyy-mm-dd HH:MM[:SS] or now or now + HH:MM[:SS] or now + SECONDS or empty",
                    "type": "string",
                    "pattern": "^(now(\\s*\\+\\s*(\\d{1,2}:\\d{1,2}(:\\d{1,2})?|\\d+)?)?||never|\\d{4}-\\d{2}-\\d{2}\\s\\d{1,2}:\\d{1,2}(:\\d{1,2})?)$"
                },
                "to": {
                    "description": "ISO format yyyy-mm-dd HH:MM[:SS] or now or now + HH:MM[:SS] or now + SECONDS or empty",
                    "type": "string",
                    "pattern": "^(now(\\s*\\+\\s*(\\d{1,2}:\\d{1,2}(:\\d{1,2})?|\\d+)?)?||never|\\d{4}-\\d{2}-\\d{2}\\s\\d{1,2}:\\d{1,2}(:\\d{1,2})?)$"
                }
            },
            "additionalProperties": false
        },
        "modified": {
            "javaType": "com.sos.joc.model.inventory.changes.common.Timespan",
            "type": "object",
            "required": [
                "from"
            ],
            "properties": {
                "from": {
                    "description": "ISO format yyyy-mm-dd HH:MM[:SS] or now or now + HH:MM[:SS] or now + SECONDS or empty",
                    "type": "string",
                    "pattern": "^(now(\\s*\\+\\s*(\\d{1,2}:\\d{1,2}(:\\d{1,2})?|\\d+)?)?||never|\\d{4}-\\d{2}-\\d{2}\\s\\d{1,2}:\\d{1,2}(:\\d{1,2})?)$"
                },
                "to": {
                    "description": "ISO format yyyy-mm-dd HH:MM[:SS] or now or now + HH:MM[:SS] or now + SECONDS or empty",
                    "type": "string",
                    "pattern": "^(now(\\s*\\+\\s*(\\d{1,2}:\\d{1,2}(:\\d{1,2})?|\\d+)?)?||never|\\d{4}-\\d{2}-\\d{2}\\s\\d{1,2}:\\d{1,2}(:\\d{1,2})?)$"
                }
            },
            "additionalProperties": false
        },
        "closed": {
            "javaType": "com.sos.joc.model.inventory.changes.common.Timespan",
            "type": "object",
            "required": [
                "from"
            ],
            "properties": {
                "from": {
                    "description": "ISO format yyyy-mm-dd HH:MM[:SS] or now or now + HH:MM[:SS] or now + SECONDS or empty",
                    "type": "string",
                    "pattern": "^(now(\\s*\\+\\s*(\\d{1,2}:\\d{1,2}(:\\d{1,2})?|\\d+)?)?||never|\\d{4}-\\d{2}-\\d{2}\\s\\d{1,2}:\\d{1,2}(:\\d{1,2})?)$"
                },
                "to": {
                    "description": "ISO format yyyy-mm-dd HH:MM[:SS] or now or now + HH:MM[:SS] or now + SECONDS or empty",
                    "type": "string",
                    "pattern": "^(now(\\s*\\+\\s*(\\d{1,2}:\\d{1,2}(:\\d{1,2})?|\\d+)?)?||never|\\d{4}-\\d{2}-\\d{2}\\s\\d{1,2}:\\d{1,2}(:\\d{1,2})?)$"
                }
            },
            "additionalProperties": false
        },
        "details": {
            "type": "boolean",
            "default": false
        }
    },
    "additionalProperties": false
}