{
"title": "JSON schema for JSONPatch files",
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "array",
"items": {
"$ref": "#/definitions/operation"
},
"definitions": {
"operation": {
"type": "object",
"required": [ "op", "path" ],
"allOf": [ { "$ref": "#/definitions/path" } ],
"oneOf": [
{
"required": [ "value" ],
"properties": {
"op": {
"description": "The operation to perform.",
"type": "string",
"enum": [ "add", "replace", "test" ]
},
"value": {
"description": "The value to add, replace or test."
}
}
},
{
"properties": {
"op": {
"description": "The operation to perform.",
"type": "string",
"enum": [ "remove" ]
}
}
},
{
"required": [ "from" ],
"properties": {
"op": {
"description": "The operation to perform.",
"type": "string",
"enum": [ "move", "copy" ]
},
"from": {
"description": "A JSON Pointer path pointing to the location to move/copy from.",
"type": "string"
}
}
}
]
},
"path": {
"properties": {
"path": {
"description": "A JSON Pointer path.",
"type": "string"
}
}
}
}
}