The 'application/openstack-images-v2.1-json-patch' media type defined in this appendix adopts a restricted form of JSON-Pointers. A restricted JSON pointer is a Unicode string containing a sequence of exactly one reference token, prefixed by a '/' (%x2F) character.
If a reference token contains '~' (%x7E) or '/' (%x2F) characters, they must be encoded as '~0' and '~1' respectively.
Its ABNF syntax is:
restricted-json-pointer = "/" reference-token reference-token = *( unescaped / escaped ) unescaped = %x00-2E / %x30-7D / %x7F-10FFFF escaped = "~" ( "0" / "1" )
Restricted JSON Pointers are evaluated as ordinary JSON pointers per JSON-Pointer.
For example, given the image
entity
{ "id": "da3b75d9-3f4a-40e7-8a2c-bfab23927dea", "name": "cirros-0.3.0-x86_64-uec-ramdisk", "status": "active", "visibility": "public", "size": 2254249, "checksum": "2cec138d7dae2aa59038ef8c9aec2390", "~/.ssh/": "present", "tags": ["ping", "pong"], "created_at": "2012-08-10T19:23:50Z", "updated_at": "2012-08-10T19:23:50Z", "self": "/v2/images/da3b75d9-3f4a-40e7-8a2c-bfab23927dea", "file": "/v2/images/da3b75d9-3f4a-40e7-8a2c-bfab23927dea/file", "schema": "/v2/schemas/image" }
the following restricted JSON pointers evaluate to the accompanying values:
"/name" "cirros-0.3.0-x86_64-uec-ramdisk" "/size" 2254249 "/tags" ["ping", "pong"] "/~0~1.ssh~1" "present"