{ "openapi": "3.0.3", "info": { "title": "json-patch", "description": "RFC 6902, JavaScript Object Notation (JSON) Patch", "contact": { "name": "Ivan Dubrov", "email": "dubrov.ivan@gmail.com" }, "license": { "name": "MIT/Apache-2.0" }, "version": "0.0.0" }, "paths": { "foo": { "get": { "tags": [ "crate" ], "operationId": "get_foo", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Patch" } } }, "required": true }, "responses": { "200": { "description": "Patch completed" }, "406": { "description": "Not accepted" } } } } }, "components": { "schemas": { "AddOperation": { "type": "object", "description": "JSON Patch 'add' operation representation", "required": [ "path", "value" ], "properties": { "path": { "type": "string", "description": "JSON-Pointer value [RFC6901](https://tools.ietf.org/html/rfc6901) that references a location\nwithin the target document where the operation is performed." }, "value": { "description": "Value to add to the target location." } } }, "CopyOperation": { "type": "object", "description": "JSON Patch 'copy' operation representation", "required": [ "from", "path" ], "properties": { "from": { "type": "string", "description": "JSON-Pointer value [RFC6901](https://tools.ietf.org/html/rfc6901) that references a location\nto copy value from." }, "path": { "type": "string", "description": "JSON-Pointer value [RFC6901](https://tools.ietf.org/html/rfc6901) that references a location\nwithin the target document where the operation is performed." } } }, "MoveOperation": { "type": "object", "description": "JSON Patch 'move' operation representation", "required": [ "from", "path" ], "properties": { "from": { "type": "string", "description": "JSON-Pointer value [RFC6901](https://tools.ietf.org/html/rfc6901) that references a location\nto move value from." }, "path": { "type": "string", "description": "JSON-Pointer value [RFC6901](https://tools.ietf.org/html/rfc6901) that references a location\nwithin the target document where the operation is performed." } } }, "Patch": { "type": "array", "items": { "$ref": "#/components/schemas/PatchOperation" }, "description": "Representation of JSON Patch (list of patch operations)" }, "PatchOperation": { "oneOf": [ { "allOf": [ { "$ref": "#/components/schemas/AddOperation" }, { "type": "object", "required": [ "op" ], "properties": { "op": { "type": "string", "enum": [ "add" ] } } } ] }, { "allOf": [ { "$ref": "#/components/schemas/RemoveOperation" }, { "type": "object", "required": [ "op" ], "properties": { "op": { "type": "string", "enum": [ "remove" ] } } } ] }, { "allOf": [ { "$ref": "#/components/schemas/ReplaceOperation" }, { "type": "object", "required": [ "op" ], "properties": { "op": { "type": "string", "enum": [ "replace" ] } } } ] }, { "allOf": [ { "$ref": "#/components/schemas/MoveOperation" }, { "type": "object", "required": [ "op" ], "properties": { "op": { "type": "string", "enum": [ "move" ] } } } ] }, { "allOf": [ { "$ref": "#/components/schemas/CopyOperation" }, { "type": "object", "required": [ "op" ], "properties": { "op": { "type": "string", "enum": [ "copy" ] } } } ] }, { "allOf": [ { "$ref": "#/components/schemas/TestOperation" }, { "type": "object", "required": [ "op" ], "properties": { "op": { "type": "string", "enum": [ "test" ] } } } ] } ], "description": "JSON Patch single patch operation", "discriminator": { "propertyName": "op" } }, "RemoveOperation": { "type": "object", "description": "JSON Patch 'remove' operation representation", "required": [ "path" ], "properties": { "path": { "type": "string", "description": "JSON-Pointer value [RFC6901](https://tools.ietf.org/html/rfc6901) that references a location\nwithin the target document where the operation is performed." } } }, "ReplaceOperation": { "type": "object", "description": "JSON Patch 'replace' operation representation", "required": [ "path", "value" ], "properties": { "path": { "type": "string", "description": "JSON-Pointer value [RFC6901](https://tools.ietf.org/html/rfc6901) that references a location\nwithin the target document where the operation is performed." }, "value": { "description": "Value to replace with." } } }, "TestOperation": { "type": "object", "description": "JSON Patch 'test' operation representation", "required": [ "path", "value" ], "properties": { "path": { "type": "string", "description": "JSON-Pointer value [RFC6901](https://tools.ietf.org/html/rfc6901) that references a location\nwithin the target document where the operation is performed." }, "value": { "description": "Value to test against." } } } } } }