diff --git a/rpc/gnmi/gnmi-specification.md b/rpc/gnmi/gnmi-specification.md index 20cb5a1..6ece436 100644 --- a/rpc/gnmi/gnmi-specification.md +++ b/rpc/gnmi/gnmi-specification.md @@ -453,6 +453,34 @@ update: < > ``` +For `/a/b[name=b1]`: + +``` +update: < + path: < + elem: < + name: "a" + > + elem: < + name: "b" + key: < + key: "name" + value: "b1" + > + > + > + val: < + json_ietf_val: `{ + "name": "b1", + "c": { + "d": "AStringValue", + "e": 10042 + } + }` + > +> +``` + For `/a` : ``` @@ -467,10 +495,10 @@ update: < { "name": "b1", "c": { - "d": "AStringValue", + "d": "AStringValue", "e": 10042 } - } + } ] }` > @@ -1109,11 +1137,11 @@ array), the following considerations apply: * In the case that multiple attribute values are required to uniquely address an element - e.g., `/a/f[k1=10][k2=20] `- and a replace or update - operation's path specifies a subset of the attributes (e.g., `/a/f[k1=10]`) - then this MUST be considered an error by the target system - and an status - code of` InvalidArgument (3)` specified. + operation's path specifies a proper subset of the attributes (e.g., + `/a/f[k1=10]`, `/a/f`), then this MUST be considered an error by the target + system - and an status code of` InvalidArgument (3)` specified. * Where the path specified refers to a node which itself represents the - collection of objects (list, map, or array) a replace operation MUST remove + collection of objects (list, map, or array), a replace operation MUST remove all collection entries that are not supplied in the value provided in the `SetRequest`. An update operation MUST be considered to add new entries to the collection if they do not exist.