{
    "title": "dependencies",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "javaType": "com.sos.joc.model.inventory.dependencies.update.ResponseItem",
    "type": "object",
    "required": [
        "dependency"
    ],
    "properties": {
        "dependency": {
            "javaType": "com.sos.joc.model.inventory.ConfigurationObject",
            "type": "object",
            "anyOf": [
                {
                    "required": [
                        "path",
                        "objectType"
                    ]
                },
                {
                    "required": [
                        "id"
                    ]
                }
            ],
            "properties": {
                "id": {
                    "type": "number",
                    "format": "utc-millisec",
                    "minimum": 0
                },
                "path": {
                    "description": "absolute path of an object.",
                    "type": "string",
                    "pattern": "^(/|(/[^/\\\\<>?:\"|*]+)+)$",
                    "maxLength": 255,
                    "minLength": 1
                },
                "objectType": {
                    "javaType": "com.sos.joc.model.inventory.common.ConfigurationType",
                    "type": "string",
                    "enum": [
                        "FOLDER",
                        "WORKFLOW",
                        "JOBCLASS",
                        "JOBRESOURCE",
                        "LOCK",
                        "NOTICEBOARD",
                        "FILEORDERSOURCE",
                        "WORKINGDAYSCALENDAR",
                        "NONWORKINGDAYSCALENDAR",
                        "SCHEDULE",
                        "INCLUDESCRIPT",
                        "JOBTEMPLATE",
                        "DEPLOYMENTDESCRIPTOR",
                        "DESCRIPTORFOLDER"
                    ]
                },
                "name": {
                    "type": "string",
                    "pattern": "^[^<>]*$",
                    "maxLength": 255
                },
                "configuration": {
                    "description": "interface for different json representations of a configuration item",
                    "type": "object",
                    "javaType": "com.sos.joc.model.common.IConfigurationObject"
                },
                "state": {
                    "javaType": "com.sos.joc.model.inventory.common.ItemStateEnum",
                    "type": "string",
                    "enum": [
                        "DEPLOYMENT_IS_NEWER",
                        "RELEASE_IS_NEWER",
                        "DRAFT_IS_NEWER",
                        "DEPLOYMENT_NOT_EXIST",
                        "RELEASE_NOT_EXIST",
                        "DRAFT_NOT_EXIST",
                        "NO_CONFIGURATION_EXIST"
                    ]
                },
                "valid": {
                    "type": "boolean"
                },
                "invalidMsg": {
                    "type": "string"
                },
                "deleted": {
                    "type": "boolean"
                },
                "deployed": {
                    "type": "boolean"
                },
                "released": {
                    "type": "boolean"
                },
                "hasDeployments": {
                    "type": "boolean"
                },
                "hasReleases": {
                    "type": "boolean"
                },
                "isReferencedBy": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "integer",
                        "minimum": 0
                    }
                },
                "syncState": {
                    "javaType": "com.sos.controller.model.common.SyncState",
                    "type": "object",
                    "required": [
                        "severity",
                        "_text"
                    ],
                    "properties": {
                        "severity": {
                            "type": "integer"
                        },
                        "_text": {
                            "javaType": "com.sos.controller.model.common.SyncStateText",
                            "description": "SUSPENDED, OUTSTANDING only for Workflows",
                            "type": "string",
                            "enum": [
                                "IN_SYNC",
                                "NOT_IN_SYNC",
                                "NOT_DEPLOYED",
                                "SUSPENDED",
                                "OUTSTANDING",
                                "UNKNOWN"
                            ]
                        }
                    }
                },
                "deployments": {
                    "type": "array",
                    "items": {
                        "javaType": "com.sos.joc.model.inventory.deploy.ResponseDeployableVersion",
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "number",
                                "format": "utc-millisec",
                                "minimum": 0
                            },
                            "commitId": {
                                "type": "string",
                                "pattern": "^[^<>]*$",
                                "maxLength": 255
                            },
                            "deploymentId": {
                                "type": "number",
                                "format": "utc-millisec",
                                "minimum": 0
                            },
                            "deploymentPath": {
                                "description": "absolute path of an object.",
                                "type": "string",
                                "pattern": "^(/|(/[^/\\\\<>?:\"|*]+)+)$",
                                "maxLength": 255,
                                "minLength": 1
                            },
                            "deploymentOperation": {
                                "type": "string",
                                "pattern": "^[^<>]*$",
                                "maxLength": 255
                            },
                            "versionDate": {
                                "description": "Value is UTC timestamp in ISO 8601 YYYY-MM-DDThh:mm:ss.sZ or empty",
                                "type": "string",
                                "format": "date-time"
                            },
                            "versions": {
                                "type": "array",
                                "items": {
                                    "javaType": "com.sos.joc.model.inventory.common.ResponseItemDeployment",
                                    "type": "object",
                                    "properties": {
                                        "deploymentId": {
                                            "type": "number",
                                            "format": "utc-millisec",
                                            "minimum": 0
                                        },
                                        "path": {
                                            "description": "absolute path of an object.",
                                            "type": "string",
                                            "pattern": "^(/|(/[^/\\\\<>?:\"|*]+)+)$",
                                            "maxLength": 255,
                                            "minLength": 1
                                        },
                                        "controllerId": {
                                            "type": "string",
                                            "pattern": "^[^/\\<>?:\"|*]*$",
                                            "maxLength": 100
                                        },
                                        "version": {
                                            "type": "string",
                                            "pattern": "^[^<>]*$",
                                            "maxLength": 255
                                        },
                                        "deploymentDate": {
                                            "description": "Value is UTC timestamp in ISO 8601 YYYY-MM-DDThh:mm:ss.sZ or empty",
                                            "type": "string",
                                            "format": "date-time"
                                        }
                                    }
                                },
                                "uniqueItems": true
                            }
                        }
                    },
                    "uniqueItems": true
                },
                "configurationDate": {
                    "description": "Value is UTC timestamp in ISO 8601 YYYY-MM-DDThh:mm:ss.sZ or empty",
                    "type": "string",
                    "format": "date-time"
                },
                "deliveryDate": {
                    "description": "Value is UTC timestamp in ISO 8601 YYYY-MM-DDThh:mm:ss.sZ or empty",
                    "type": "string",
                    "format": "date-time"
                },
                "auditLog": {
                    "javaType": "com.sos.joc.model.audit.AuditParams",
                    "type": "object",
                    "properties": {
                        "comment": {
                            "type": "string",
                            "pattern": "^[^<>]*$",
                            "maxLength": 255
                        },
                        "timeSpent": {
                            "type": "integer",
                            "minimum": 0
                        },
                        "ticketLink": {
                            "type": "string",
                            "pattern": "^[^<>]*$",
                            "maxLength": 255
                        }
                    }
                }
            },
            "additionalProperties": false
        },
        "references": {
            "type": "array",
            "uniqueItems": true,
            "items": {
                "description": "responseItem-schema.json"
            }
        },
        "referencedBy": {
            "type": "array",
            "uniqueItems": true,
            "items": {
                "description": "responseItem-schema.json"
            }
        }
    },
    "additionalProperties": false
}