json_schema: {
      "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"
                  }
              ]
          }
      }
  }