{
    "title": "FileOrderSource",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "javaType": "com.sos.controller.model.fileordersource.FileOrderSource",
    "type": "object",
    "extends": {
        "javaType": "com.sos.inventory.model.fileordersource.FileOrderSource",
        "type": "object",
        "javaInterfaces": [
            "com.sos.joc.model.common.IConfigurationObject",
            "com.sos.joc.model.common.IDeployObject",
            "com.sos.inventory.model.common.IInventoryObject"
        ],
        "required": [
            "workflowName",
            "agentName",
            "directory"
        ],
        "propertyOrder": [
            "TYPE",
            "version",
            "workflowName",
            "agentName",
            "directory",
            "pattern",
            "timeZone",
            "delay",
            "title",
            "documentationName"
        ],
        "description": "deploy object with fixed property 'TYPE':'FileWatch'",
        "properties": {
            "TYPE": {
                "javaType": "com.sos.inventory.model.deploy.DeployType",
                "type": "string",
                "enum": [
                    "Workflow",
                    "JobClass",
                    "Lock",
                    "FileWatch",
                    "JobResource",
                    "Board"
                ],
                "javaEnumNames": [
                    "Workflow",
                    "JobClass",
                    "Lock",
                    "FileWatch",
                    "JobResource",
                    "Board"
                ],
                "default": "Workflow"
            },
            "version": {
                "description": "inventory repository version",
                "type": "string",
                "pattern": "[0-9]+\\.[0-9]+\\.[0-9]+",
                "default": "1.0.0",
                "maxLength": 10
            },
            "workflowName": {
                "alias": "workflowPath",
                "type": "string",
                "pattern": "^[^<>]*$",
                "maxLength": 255,
                "minLength": 1
            },
            "agentName": {
                "alias": "agentId,agentPath",
                "type": "string",
                "pattern": "^[^<>]*$",
                "maxLength": 255,
                "minLength": 1
            },
            "directory": {
                "type": "string",
                "pattern": "^[^<>]*$",
                "maxLength": 255,
                "minLength": 1
            },
            "pattern": {
                "type": "string"
            },
            "timeZone": {
                "type": "string",
                "pattern": "^[^<>]*$",
                "maxLength": 255
            },
            "delay": {
                "type": "integer",
                "format": "utc-millisec",
                "minimum": 1,
                "maximum": 9999
            },
            "title": {
                "type": "string",
                "pattern": "^[^<>]*$",
                "maxLength": 255
            },
            "documentationName": {
                "type": "string",
                "pattern": "^[^<>]*$",
                "maxLength": 255
            }
        },
        "additionalProperties": false
    },
    "properties": {
        "path": {
            "description": "absolute path of an object.",
            "type": "string",
            "pattern": "^(/|(/[^/\\\\<>?:\"|*]+)+)$",
            "maxLength": 255,
            "minLength": 1
        },
        "versionDate": {
            "description": "Value is UTC timestamp in ISO 8601 YYYY-MM-DDThh:mm:ss.sZ or empty",
            "type": "string",
            "format": "date-time"
        },
        "state": {
            "javaType": "com.sos.controller.model.common.SyncState",
            "type": "object",
            "required": [
                "severity",
                "_text"
            ],
            "properties": {
                "severity": {
                    "type": "integer"
                },
                "_text": {
                    "javaType": "com.sos.controller.model.common.SyncStateText",
                    "type": "string",
                    "enum": [
                        "IN_SYNC",
                        "NOT_IN_SYNC",
                        "UNKNOWN"
                    ]
                }
            }
        }
    },
    "additionalProperties": false
}