{
    "title": "FileOrderSource",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "javaType": "com.sos.sign.model.fileordersource.FileOrderSource",
    "type": "object",
    "javaInterfaces": [
        "com.sos.joc.model.common.IDeployObject"
    ],
    "required": [
        "TYPE",
        "path",
        "workflowPath",
        "agentPath",
        "directoryExpr"
    ],
    "propertyOrder": [
        "TYPE",
        "path",
        "workflowPath",
        "agentPath",
        "pattern",
        "orderIdExpression",
        "delay"
    ],
    "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"
        },
        "path": {
            "type": "string",
            "pattern": "^[^<>]*$",
            "maxLength": 255,
            "minLength": 1
        },
        "workflowPath": {
            "alias": "workflowName",
            "type": "string",
            "pattern": "^[^<>]*$",
            "maxLength": 255,
            "minLength": 1
        },
        "agentPath": {
            "alias": "agentId,agentName",
            "type": "string",
            "pattern": "^[^<>]*$",
            "maxLength": 255,
            "minLength": 1
        },
        "directoryExpr": {
            "type": "string",
            "pattern": "^[^<>]*$",
            "maxLength": 255,
            "minLength": 1
        },
        "directory": {
            "type": "string",
            "pattern": "^[^<>]*$",
            "maxLength": 255
        },
        "pattern": {
            "type": "string"
        },
        "timeZone": {
            "type": "string",
            "pattern": "^[^<>]*$",
            "maxLength": 255,
            "default": "Etc/UTC"
        },
        "orderIdExpression": {
            "description": "'#' ++ now(format='yyyy-MM-dd', timezone='Antarctica/Troll') ++ \"#F$js7EpochSecond-$orderWatchId:$0\"",
            "type": "string"
        },
        "delay": {
            "type": "integer",
            "format": "utc-millisec",
            "minimum": 1,
            "maximum": 9999
        }
    },
    "additionalProperties": false
}