All Downloads are FREE. Search and download functionalities are using the official Maven repository.

e.json-schema-processor-examples.0.6.source-code.json-patch.json Maven / Gradle / Ivy

There is a newer version: 0.8.2
Show newest version
{
    "title": "JSON Patch",
    "description": "A JSON Schema describing a JSON Patch",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "notes": [
        "Only required members are accounted for, other members are ignored"
    ],
    "type": "array",
    "items": {
        "description": "one JSON Patch operation",
        "allOf": [
            {
                "description": "Members common to all operations",
                "type": "object",
                "required": [ "op", "path" ],
                "properties": {
                    "path": { "$ref": "#/definitions/jsonPointer" }
                }
            },
            { "$ref": "#/definitions/oneOperation" }
        ]
    },
    "definitions": {
        "jsonPointer": {
            "type": "string",
            "pattern": "^(/[^/~]*(~[01][^/~]*)*)*$"
        },
        "add": {
            "description": "add operation. Value can be any JSON value.",
            "properties": { "op": { "enum": [ "add" ] } },
            "required": [ "value" ]
        },
        "remove": {
            "description": "remove operation. Only a path is specified.",
            "properties": { "op": { "enum": [ "remove" ] } }
        },
        "replace": {
            "description": "replace operation. Value can be any JSON value.",
            "properties": { "op": { "enum": [ "replace" ] } },
            "required": [ "value" ]
        },
        "move": {
            "description": "move operation. \"from\" is a JSON Pointer.",
            "properties": {
                "op": { "enum": [ "move" ] },
                "from": { "$ref": "#/definitions/jsonPointer" }
            },
            "required": [ "from" ]
        },
        "copy": {
            "description": "copy operation. \"from\" is a JSON Pointer.",
            "properties": {
                "op": { "enum": [ "copy" ] },
                "from": { "$ref": "#/definitions/jsonPointer" }
            },
            "required": [ "from" ]
        },
        "test": {
            "description": "test operation. Value can be any JSON value.",
            "properties": { "op": { "enum": [ "test" ] } },
            "required": [ "value" ]
        },
        "oneOperation": {
            "oneOf": [
                { "$ref": "#/definitions/add" },
                { "$ref": "#/definitions/remove" },
                { "$ref": "#/definitions/replace" },
                { "$ref": "#/definitions/move" },
                { "$ref": "#/definitions/copy" },
                { "$ref": "#/definitions/test" }
            ]
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy