rfc8040_early27Jan2017.txt   rfc8040.txt 
skipping to change at page 19, line 30 skipping to change at page 19, line 30
The client might send the following: The client might send the following:
GET /top/restconf/operations HTTP/1.1 GET /top/restconf/operations HTTP/1.1
Host: example.com Host: example.com
Accept: application/yang-data+json Accept: application/yang-data+json
The server might respond as follows: The server might respond as follows:
HTTP/1.1 200 OK HTTP/1.1 200 OK
Date: Mon, 25 Apr 2016 17:01:00 GMT Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server Server: example-server
Cache-Control: no-cache Cache-Control: no-cache
Last-Modified: Fri, 22 Apr 2016 01:00:14 GMT Last-Modified: Thu, 26 Jan 2017 16:00:14 GMT
Content-Type: application/yang-data+json Content-Type: application/yang-data+json
{ "operations" : { "example-jukebox:play" : [null] } } { "operations" : { "example-jukebox:play" : [null] } }
If the Extensible Resource Descriptor (XRD) contains more than one If the Extensible Resource Descriptor (XRD) contains more than one
link relation, then only the relation named "restconf" is relevant to link relation, then only the relation named "restconf" is relevant to
this specification. this specification.
Note that any given endpoint (host:port) can only support one Note that any given endpoint (host:port) can only support one
RESTCONF server, due to the root resource discovery mechanism. This RESTCONF server, due to the root resource discovery mechanism. This
skipping to change at page 21, line 38 skipping to change at page 21, line 38
resource, using the "content" query parameter (see Section 4.8.1). resource, using the "content" query parameter (see Section 4.8.1).
GET /restconf/data/example-jukebox:jukebox/library\ GET /restconf/data/example-jukebox:jukebox/library\
?content=nonconfig HTTP/1.1 ?content=nonconfig HTTP/1.1
Host: example.com Host: example.com
Accept: application/yang-data+xml Accept: application/yang-data+xml
The server might respond as follows: The server might respond as follows:
HTTP/1.1 200 OK HTTP/1.1 200 OK
Date: Mon, 25 Apr 2016 17:01:30 GMT Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server Server: example-server
Cache-Control: no-cache Cache-Control: no-cache
Content-Type: application/yang-data+xml Content-Type: application/yang-data+xml
<library xmlns="https://example.com/ns/example-jukebox"> <library xmlns="https://example.com/ns/example-jukebox">
<artist-count>42</artist-count> <artist-count>42</artist-count>
<album-count>59</album-count> <album-count>59</album-count>
<song-count>374</song-count> <song-count>374</song-count>
</library> </library>
skipping to change at page 22, line 26 skipping to change at page 22, line 26
The access point for each RPC operation is represented as an empty The access point for each RPC operation is represented as an empty
leaf. If an operation resource is retrieved, the empty leaf leaf. If an operation resource is retrieved, the empty leaf
representation is returned by the server. representation is returned by the server.
Operation resources are defined in Section 3.6. Operation resources are defined in Section 3.6.
3.3.3. {+restconf}/yang-library-version 3.3.3. {+restconf}/yang-library-version
This mandatory leaf identifies the revision date of the This mandatory leaf identifies the revision date of the
"ietf-yang-library" YANG module that is implemented by this server. "ietf-yang-library" YANG module that is implemented by this server.
Note that the revision date for the module version found in [RFC7895] In the example that follows, the revision date for the module version
is used. found in [RFC7895] is used.
Example: Example:
GET /restconf/yang-library-version HTTP/1.1 GET /restconf/yang-library-version HTTP/1.1
Host: example.com Host: example.com
Accept: application/yang-data+xml Accept: application/yang-data+xml
The server might respond as follows: The server might respond as follows:
HTTP/1.1 200 OK HTTP/1.1 200 OK
Date: Sat, 24 Dec 2016 17:01:30 GMT Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server Server: example-server
Cache-Control: no-cache Cache-Control: no-cache
Content-Type: application/yang-data+xml Content-Type: application/yang-data+xml
<yang-library-version <yang-library-version
xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf">\ xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf">\
2016-06-21\ 2016-06-21\
</yang-library-version> </yang-library-version>
3.4. Datastore Resource 3.4. Datastore Resource
skipping to change at page 35, line 22 skipping to change at page 35, line 22
<input xmlns="https://example.com/ns/example-ops"> <input xmlns="https://example.com/ns/example-ops">
<delay>600</delay> <delay>600</delay>
<message>Going down for system maintenance</message> <message>Going down for system maintenance</message>
<language>en-US</language> <language>en-US</language>
</input> </input>
The server might respond as follows: The server might respond as follows:
HTTP/1.1 204 No Content HTTP/1.1 204 No Content
Date: Mon, 25 Apr 2016 11:01:00 GMT Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server Server: example-server
The same example request message is shown here using JSON encoding: The same example request message is shown here using JSON encoding:
POST /restconf/operations/example-ops:reboot HTTP/1.1 POST /restconf/operations/example-ops:reboot HTTP/1.1
Host: example.com Host: example.com
Content-Type: application/yang-data+json Content-Type: application/yang-data+json
{ {
"example-ops:input" : { "example-ops:input" : {
skipping to change at page 36, line 8 skipping to change at page 36, line 8
Host: example.com Host: example.com
Content-Type: application/yang-data+xml Content-Type: application/yang-data+xml
<input xmlns="https://example.com/ns/example-actions"> <input xmlns="https://example.com/ns/example-actions">
<delay>600</delay> <delay>600</delay>
</input> </input>
The server might respond as follows: The server might respond as follows:
HTTP/1.1 204 No Content HTTP/1.1 204 No Content
Date: Mon, 25 Apr 2016 11:01:00 GMT Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server Server: example-server
The same example request message is shown here using JSON encoding: The same example request message is shown here using JSON encoding:
POST /restconf/data/example-actions:interfaces/\ POST /restconf/data/example-actions:interfaces/\
interface=eth0/reset HTTP/1.1 interface=eth0/reset HTTP/1.1
Host: example.com Host: example.com
Content-Type: application/yang-data+json Content-Type: application/yang-data+json
{ "example-actions:input" : { { "example-actions:input" : {
skipping to change at page 37, line 22 skipping to change at page 37, line 22
The client might send the following POST request message to invoke The client might send the following POST request message to invoke
the "get-reboot-info" operation: the "get-reboot-info" operation:
POST /restconf/operations/example-ops:get-reboot-info HTTP/1.1 POST /restconf/operations/example-ops:get-reboot-info HTTP/1.1
Host: example.com Host: example.com
Accept: application/yang-data+json Accept: application/yang-data+json
The server might respond as follows: The server might respond as follows:
HTTP/1.1 200 OK HTTP/1.1 200 OK
Date: Mon, 25 Apr 2016 11:10:30 GMT Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server Server: example-server
Content-Type: application/yang-data+json Content-Type: application/yang-data+json
{ {
"example-ops:output" : { "example-ops:output" : {
"reboot-time" : 30, "reboot-time" : 30,
"message" : "Going down for system maintenance", "message" : "Going down for system maintenance",
"language" : "en-US" "language" : "en-US"
} }
} }
The same response is shown here using XML encoding: The same response is shown here using XML encoding:
HTTP/1.1 200 OK HTTP/1.1 200 OK
Date: Mon, 25 Apr 2016 11:10:30 GMT Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server Server: example-server
Content-Type: application/yang-data+xml Content-Type: application/yang-data+xml
<output xmlns="https://example.com/ns/example-ops"> <output xmlns="https://example.com/ns/example-ops">
<reboot-time>30</reboot-time> <reboot-time>30</reboot-time>
<message>Going down for system maintenance</message> <message>Going down for system maintenance</message>
<language>en-US</language> <language>en-US</language>
</output> </output>
Action Output Example: Action Output Example:
skipping to change at page 38, line 21 skipping to change at page 38, line 21
the "get-last-reset-time" action: the "get-last-reset-time" action:
POST /restconf/data/example-actions:interfaces/\ POST /restconf/data/example-actions:interfaces/\
interface=eth0/get-last-reset-time HTTP/1.1 interface=eth0/get-last-reset-time HTTP/1.1
Host: example.com Host: example.com
Accept: application/yang-data+json Accept: application/yang-data+json
The server might respond as follows: The server might respond as follows:
HTTP/1.1 200 OK HTTP/1.1 200 OK
Date: Mon, 25 Apr 2016 11:10:30 GMT Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server Server: example-server
Content-Type: application/yang-data+json Content-Type: application/yang-data+json
{ {
"example-actions:output" : { "example-actions:output" : {
"last-reset" : "2015-10-10T02:14:11Z" "last-reset" : "2015-10-10T02:14:11Z"
} }
} }
3.6.3. Encoding Operation Resource Errors 3.6.3. Encoding Operation Resource Errors
skipping to change at page 39, line 21 skipping to change at page 39, line 21
<input xmlns="https://example.com/ns/example-ops"> <input xmlns="https://example.com/ns/example-ops">
<delay>-33</delay> <delay>-33</delay>
<message>Going down for system maintenance</message> <message>Going down for system maintenance</message>
<language>en-US</language> <language>en-US</language>
</input> </input>
The server might respond with an "invalid-value" error: The server might respond with an "invalid-value" error:
HTTP/1.1 400 Bad Request HTTP/1.1 400 Bad Request
Date: Mon, 25 Apr 2016 11:10:30 GMT Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server Server: example-server
Content-Type: application/yang-data+xml Content-Type: application/yang-data+xml
<errors xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf"> <errors xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf">
<error> <error>
<error-type>protocol</error-type> <error-type>protocol</error-type>
<error-tag>invalid-value</error-tag> <error-tag>invalid-value</error-tag>
<error-path xmlns:ops="https://example.com/ns/example-ops"> <error-path xmlns:ops="https://example.com/ns/example-ops">
/ops:input/ops:delay /ops:input/ops:delay
</error-path> </error-path>
<error-message>Invalid input parameter</error-message> <error-message>Invalid input parameter</error-message>
</error> </error>
</errors> </errors>
The same response is shown here using JSON encoding: The same response is shown here using JSON encoding:
HTTP/1.1 400 Bad Request HTTP/1.1 400 Bad Request
Date: Mon, 25 Apr 2016 11:10:30 GMT Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server Server: example-server
Content-Type: application/yang-data+json Content-Type: application/yang-data+json
{ "ietf-restconf:errors" : { { "ietf-restconf:errors" : {
"error" : [ "error" : [
{ {
"error-type" : "protocol", "error-type" : "protocol",
"error-tag" : "invalid-value", "error-tag" : "invalid-value",
"error-path" : "/example-ops:input/delay", "error-path" : "/example-ops:input/delay",
"error-message" : "Invalid input parameter" "error-message" : "Invalid input parameter"
skipping to change at page 40, line 45 skipping to change at page 40, line 45
The client might send the following GET request message: The client might send the following GET request message:
GET /restconf/data/ietf-yang-library:modules-state/\ GET /restconf/data/ietf-yang-library:modules-state/\
module=example-jukebox,2016-08-15/schema HTTP/1.1 module=example-jukebox,2016-08-15/schema HTTP/1.1
Host: example.com Host: example.com
Accept: application/yang-data+json Accept: application/yang-data+json
The server might respond as follows: The server might respond as follows:
HTTP/1.1 200 OK HTTP/1.1 200 OK
Date: Sat, 24 Dec 2016 11:10:30 GMT Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server Server: example-server
Content-Type: application/yang-data+json Content-Type: application/yang-data+json
{ {
"ietf-yang-library:schema" : "ietf-yang-library:schema" :
"https://example.com/mymodules/example-jukebox/2016-08-15" "https://example.com/mymodules/example-jukebox/2016-08-15"
} }
Next, the client needs to retrieve the actual YANG schema. Next, the client needs to retrieve the actual YANG schema.
The client might send the following GET request message: The client might send the following GET request message:
GET https://example.com/mymodules/example-jukebox/\ GET https://example.com/mymodules/example-jukebox/\
2016-08-15 HTTP/1.1 2016-08-15 HTTP/1.1
Host: example.com Host: example.com
Accept: application/yang Accept: application/yang
The server might respond as follows: The server might respond as follows:
HTTP/1.1 200 OK HTTP/1.1 200 OK
Date: Sat, 24 Dec 2016 11:10:31 GMT Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server Server: example-server
Content-Type: application/yang Content-Type: application/yang
// entire YANG module contents deleted for this example... // entire YANG module contents deleted for this example...
3.8. Event Stream Resource 3.8. Event Stream Resource
An event stream resource represents a source for system-generated An event stream resource represents a source for system-generated
event notifications. Each stream is created and modified by the event notifications. Each stream is created and modified by the
server only. A client can retrieve a stream resource or initiate a server only. A client can retrieve a stream resource or initiate a
skipping to change at page 45, line 8 skipping to change at page 45, line 8
representation of a specific "album" resource: representation of a specific "album" resource:
GET /restconf/data/example-jukebox:jukebox/\ GET /restconf/data/example-jukebox:jukebox/\
library/artist=Foo%20Fighters/album=Wasting%20Light HTTP/1.1 library/artist=Foo%20Fighters/album=Wasting%20Light HTTP/1.1
Host: example.com Host: example.com
Accept: application/yang-data+xml Accept: application/yang-data+xml
The server might respond as follows: The server might respond as follows:
HTTP/1.1 200 OK HTTP/1.1 200 OK
Date: Mon, 25 Apr 2016 17:02:40 GMT Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server Server: example-server
Content-Type: application/yang-data+xml Content-Type: application/yang-data+xml
Cache-Control: no-cache Cache-Control: no-cache
ETag: "a74eefc993a2b" ETag: "a74eefc993a2b"
Last-Modified: Mon, 25 Apr 2016 11:02:14 GMT Last-Modified: Thu, 26 Jan 2017 14:02:14 GMT
<album xmlns="http://example.com/ns/example-jukebox" <album xmlns="http://example.com/ns/example-jukebox"
xmlns:jbox="http://example.com/ns/example-jukebox"> xmlns:jbox="http://example.com/ns/example-jukebox">
<name>Wasting Light</name> <name>Wasting Light</name>
<genre>jbox:alternative</genre> <genre>jbox:alternative</genre>
<year>2011</year> <year>2011</year>
</album> </album>
Refer to Appendix B.1 for more resource retrieval examples. Refer to Appendix B.1 for more resource retrieval examples.
skipping to change at page 46, line 41 skipping to change at page 46, line 41
POST /restconf/data HTTP/1.1 POST /restconf/data HTTP/1.1
Host: example.com Host: example.com
Content-Type: application/yang-data+json Content-Type: application/yang-data+json
{ "example-jukebox:jukebox" : {} } { "example-jukebox:jukebox" : {} }
If the resource is created, the server might respond as follows: If the resource is created, the server might respond as follows:
HTTP/1.1 201 Created HTTP/1.1 201 Created
Date: Mon, 25 Apr 2016 17:01:00 GMT Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server Server: example-server
Location: https://example.com/restconf/data/\ Location: https://example.com/restconf/data/\
example-jukebox:jukebox example-jukebox:jukebox
Last-Modified: Mon, 25 Apr 2016 17:01:00 GMT Last-Modified: Thu, 26 Jan 2017 20:56:30 GMT
ETag: "b3a3e673be2" ETag: "b3a3e673be2"
Refer to Appendix B.2.1 for more resource creation examples. Refer to Appendix B.2.1 for more resource creation examples.
4.4.2. Invoke Operation Mode 4.4.2. Invoke Operation Mode
If the target resource type is an operation resource, then the POST If the target resource type is an operation resource, then the POST
method is treated as a request to invoke that operation. The method is treated as a request to invoke that operation. The
message-body (if any) is processed as the operation input parameters. message-body (if any) is processed as the operation input parameters.
Refer to Section 3.6 for details on operation resources. Refer to Section 3.6 for details on operation resources.
skipping to change at page 47, line 44 skipping to change at page 47, line 44
{ {
"example-jukebox:input" : { "example-jukebox:input" : {
"playlist" : "Foo-One", "playlist" : "Foo-One",
"song-number" : 2 "song-number" : 2
} }
} }
The server might respond as follows: The server might respond as follows:
HTTP/1.1 204 No Content HTTP/1.1 204 No Content
Date: Mon, 25 Apr 2016 17:50:00 GMT Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server Server: example-server
4.5. PUT 4.5. PUT
The RESTCONF server MUST support the PUT method. The PUT method is The RESTCONF server MUST support the PUT method. The PUT method is
sent by the client to create or replace the target data resource. A sent by the client to create or replace the target data resource. A
request message-body MUST be present, representing the new data request message-body MUST be present, representing the new data
resource, or the server MUST return a "400 Bad Request" status-line. resource, or the server MUST return a "400 Bad Request" status-line.
The error-tag value "invalid-value" is used in this case. The error-tag value "invalid-value" is used in this case.
skipping to change at page 49, line 31 skipping to change at page 49, line 31
"name" : "Wasting Light", "name" : "Wasting Light",
"genre" : "example-jukebox:alternative", "genre" : "example-jukebox:alternative",
"year" : 2011 "year" : 2011
} }
] ]
} }
If the resource is updated, the server might respond as follows: If the resource is updated, the server might respond as follows:
HTTP/1.1 204 No Content HTTP/1.1 204 No Content
Date: Mon, 25 Apr 2016 17:04:00 GMT Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server Server: example-server
Last-Modified: Mon, 25 Apr 2016 17:04:00 GMT Last-Modified: Thu, 26 Jan 2017 20:56:30 GMT
ETag: "b27480aeda4c" ETag: "b27480aeda4c"
The same request is shown here using XML encoding: The same request is shown here using XML encoding:
PUT /restconf/data/example-jukebox:jukebox/\ PUT /restconf/data/example-jukebox:jukebox/\
library/artist=Foo%20Fighters/album=Wasting%20Light HTTP/1.1 library/artist=Foo%20Fighters/album=Wasting%20Light HTTP/1.1
Host: example.com Host: example.com
Content-Type: application/yang-data+xml Content-Type: application/yang-data+xml
<album xmlns="http://example.com/ns/example-jukebox" <album xmlns="http://example.com/ns/example-jukebox"
skipping to change at page 51, line 32 skipping to change at page 51, line 32
If-Match: "b8389233a4c" If-Match: "b8389233a4c"
Content-Type: application/yang-data+xml Content-Type: application/yang-data+xml
<album xmlns="http://example.com/ns/example-jukebox"> <album xmlns="http://example.com/ns/example-jukebox">
<year>2011</year> <year>2011</year>
</album> </album>
If the field is updated, the server might respond as follows: If the field is updated, the server might respond as follows:
HTTP/1.1 204 No Content HTTP/1.1 204 No Content
Date: Mon, 25 Apr 2016 17:49:30 GMT Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server Server: example-server
Last-Modified: Mon, 25 Apr 2016 17:49:30 GMT Last-Modified: Thu, 26 Jan 2017 20:56:30 GMT
ETag: "b2788923da4c" ETag: "b2788923da4c"
4.7. DELETE 4.7. DELETE
The RESTCONF server MUST support the DELETE method. The DELETE The RESTCONF server MUST support the DELETE method. The DELETE
method is used to delete the target resource. If the DELETE request method is used to delete the target resource. If the DELETE request
succeeds, a "204 No Content" status-line is returned. succeeds, a "204 No Content" status-line is returned.
If the user is not authorized to delete the target resource, then an If the user is not authorized to delete the target resource, then an
error response containing a "403 Forbidden" status-line SHOULD be error response containing a "403 Forbidden" status-line SHOULD be
skipping to change at page 52, line 22 skipping to change at page 52, line 22
To delete the "album" resource with the key "Wasting Light", the To delete the "album" resource with the key "Wasting Light", the
client might send the following: client might send the following:
DELETE /restconf/data/example-jukebox:jukebox/\ DELETE /restconf/data/example-jukebox:jukebox/\
library/artist=Foo%20Fighters/album=Wasting%20Light HTTP/1.1 library/artist=Foo%20Fighters/album=Wasting%20Light HTTP/1.1
Host: example.com Host: example.com
If the resource is deleted, the server might respond as follows: If the resource is deleted, the server might respond as follows:
HTTP/1.1 204 No Content HTTP/1.1 204 No Content
Date: Mon, 25 Apr 2016 17:49:40 GMT Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server Server: example-server
4.8. Query Parameters 4.8. Query Parameters
Each RESTCONF operation allows zero or more query parameters to be Each RESTCONF operation allows zero or more query parameters to be
present in the request URI. Which specific parameters are allowed present in the request URI. Which specific parameters are allowed
will depend on the resource type, and sometimes the specific target will depend on the resource type, and sometimes the specific target
resource used, in the request. resource used, in the request.
o Query parameters can be given in any order. o Query parameters can be given in any order.
skipping to change at page 64, line 20 skipping to change at page 64, line 20
5.3.1. XML Metadata Encoding Example 5.3.1. XML Metadata Encoding Example
GET /restconf/data/interfaces/interface=eth1 GET /restconf/data/interfaces/interface=eth1
?with-defaults=report-all-tagged HTTP/1.1 ?with-defaults=report-all-tagged HTTP/1.1
Host: example.com Host: example.com
Accept: application/yang-data+xml Accept: application/yang-data+xml
The server might respond as follows: The server might respond as follows:
HTTP/1.1 200 OK HTTP/1.1 200 OK
Date: Mon, 25 Apr 2016 17:01:00 GMT Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server Server: example-server
Content-Type: application/yang-data+xml Content-Type: application/yang-data+xml
<interface <interface
xmlns="urn:example.com:params:xml:ns:yang:example-interface"> xmlns="urn:example.com:params:xml:ns:yang:example-interface">
<name>eth1</name> <name>eth1</name>
<mtu xmlns:wd="urn:ietf:params:xml:ns:netconf:default:1.0" <mtu xmlns:wd="urn:ietf:params:xml:ns:netconf:default:1.0"
wd:default="true">1500</mtu> wd:default="true">1500</mtu>
<status>up</status> <status>up</status>
</interface> </interface>
skipping to change at page 65, line 20 skipping to change at page 65, line 20
"ietf-netconf-with-defaults" is assigned for JSON metadata encoding. "ietf-netconf-with-defaults" is assigned for JSON metadata encoding.
GET /restconf/data/interfaces/interface=eth1\ GET /restconf/data/interfaces/interface=eth1\
?with-defaults=report-all-tagged HTTP/1.1 ?with-defaults=report-all-tagged HTTP/1.1
Host: example.com Host: example.com
Accept: application/yang-data+json Accept: application/yang-data+json
The server might respond as follows: The server might respond as follows:
HTTP/1.1 200 OK HTTP/1.1 200 OK
Date: Mon, 25 Apr 2016 17:01:00 GMT Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server Server: example-server
Content-Type: application/yang-data+json Content-Type: application/yang-data+json
{ {
"example:interface" : [ "example:interface" : [
{ {
"name" : "eth1", "name" : "eth1",
"mtu" : 1500, "mtu" : 1500,
"@mtu" : { "@mtu" : {
"ietf-netconf-with-defaults:default" : true "ietf-netconf-with-defaults:default" : true
skipping to change at page 77, line 8 skipping to change at page 77, line 8
if this operation was successful. if this operation was successful.
DELETE /restconf/data/example-jukebox:jukebox/\ DELETE /restconf/data/example-jukebox:jukebox/\
library/artist=Foo%20Fighters/album=Wasting%20Light HTTP/1.1 library/artist=Foo%20Fighters/album=Wasting%20Light HTTP/1.1
Host: example.com Host: example.com
Accept: application/yang-data+json Accept: application/yang-data+json
The server might respond as follows: The server might respond as follows:
HTTP/1.1 409 Conflict HTTP/1.1 409 Conflict
Date: Mon, 25 Apr 2016 17:11:00 GMT Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server Server: example-server
Content-Type: application/yang-data+json Content-Type: application/yang-data+json
{ {
"ietf-restconf:errors" : { "ietf-restconf:errors" : {
"error" : [ "error" : [
{ {
"error-type" : "protocol", "error-type" : "protocol",
"error-tag" : "lock-denied", "error-tag" : "lock-denied",
"error-message" : "Lock failed; lock already held" "error-message" : "Lock failed; lock already held"
skipping to change at page 78, line 8 skipping to change at page 78, line 8
it cannot be created. it cannot be created.
The client might send the following: The client might send the following:
POST /restconf/data/example-jukebox:jukebox HTTP/1.1 POST /restconf/data/example-jukebox:jukebox HTTP/1.1
Host: example.com Host: example.com
The server might respond as follows: The server might respond as follows:
HTTP/1.1 409 Conflict HTTP/1.1 409 Conflict
Date: Mon, 25 Apr 2016 17:11:00 GMT Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server Server: example-server
Content-Type: application/yang-data+xml Content-Type: application/yang-data+xml
<errors xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf"> <errors xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf">
<error> <error>
<error-type>protocol</error-type> <error-type>protocol</error-type>
<error-tag>data-exists</error-tag> <error-tag>data-exists</error-tag>
<error-path <error-path
xmlns:rc="urn:ietf:params:xml:ns:yang:ietf-restconf" xmlns:rc="urn:ietf:params:xml:ns:yang:ietf-restconf"
xmlns:jbox="https://example.com/ns/example-jukebox">\ xmlns:jbox="https://example.com/ns/example-jukebox">\
skipping to change at page 96, line 28 skipping to change at page 96, line 28
Type name: application Type name: application
Subtype name: yang-data+json Subtype name: yang-data+json
Required parameters: None Required parameters: None
Optional parameters: None Optional parameters: None
Encoding considerations: 8-bit Encoding considerations: 8-bit
Each conceptual YANG data node is encoded according to Each conceptual YANG data node is encoded according to
[RFC7951]. A data annotation is encoded according to [RFC7951]. A metadata annotation is encoded according to
[RFC7952]. [RFC7952].
Security considerations: Security considerations related Security considerations: Security considerations related
to the generation and consumption of RESTCONF messages to the generation and consumption of RESTCONF messages
are discussed in Section 12 of RFC 8040. are discussed in Section 12 of RFC 8040.
Additional security considerations are specific to the Additional security considerations are specific to the
semantics of particular YANG data models. Each YANG module semantics of particular YANG data models. Each YANG module
is expected to specify security considerations for the is expected to specify security considerations for the
YANG data defined in that module. YANG data defined in that module.
skipping to change at page 113, line 25 skipping to change at page 113, line 25
The client may then retrieve the top-level API resource, using the The client may then retrieve the top-level API resource, using the
root resource "/restconf". root resource "/restconf".
GET /restconf HTTP/1.1 GET /restconf HTTP/1.1
Host: example.com Host: example.com
Accept: application/yang-data+json Accept: application/yang-data+json
The server might respond as follows: The server might respond as follows:
HTTP/1.1 200 OK HTTP/1.1 200 OK
Date: Sat, 24 Dec 2016 17:01:00 GMT Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server Server: example-server
Content-Type: application/yang-data+json Content-Type: application/yang-data+json
{ {
"ietf-restconf:restconf" : { "ietf-restconf:restconf" : {
"data" : {}, "data" : {},
"operations" : {}, "operations" : {},
"yang-library-version" : "2016-06-21" "yang-library-version" : "2016-06-21"
} }
} }
skipping to change at page 114, line 9 skipping to change at page 114, line 9
header can be used, as in this example request: header can be used, as in this example request:
GET /restconf HTTP/1.1 GET /restconf HTTP/1.1
Host: example.com Host: example.com
Accept: application/yang-data+xml Accept: application/yang-data+xml
The server will return the same conceptual data either way, which The server will return the same conceptual data either way, which
might be as follows: might be as follows:
HTTP/1.1 200 OK HTTP/1.1 200 OK
Date: Sat, 24 Dec 2016 17:01:00 GMT Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server Server: example-server
Cache-Control: no-cache Cache-Control: no-cache
Content-Type: application/yang-data+xml Content-Type: application/yang-data+xml
<restconf xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf"> <restconf xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf">
<data/> <data/>
<operations/> <operations/>
<yang-library-version>2016-06-21</yang-library-version> <yang-library-version>2016-06-21</yang-library-version>
</restconf> </restconf>
skipping to change at page 115, line 8 skipping to change at page 115, line 8
In this example, the client is retrieving the module information from In this example, the client is retrieving the module information from
the server in JSON format: the server in JSON format:
GET /restconf/data/ietf-yang-library:modules-state HTTP/1.1 GET /restconf/data/ietf-yang-library:modules-state HTTP/1.1
Host: example.com Host: example.com
Accept: application/yang-data+json Accept: application/yang-data+json
The server might respond as follows: The server might respond as follows:
HTTP/1.1 200 OK HTTP/1.1 200 OK
Date: Sat, 24 Dec 2016 17:01:00 GMT Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server Server: example-server
Cache-Control: no-cache Cache-Control: no-cache
Last-Modified: Wed, 21 Dec 2016 01:00:14 GMT Last-Modified: Thu, 26 Jan 2017 14:00:14 GMT
Content-Type: application/yang-data+json Content-Type: application/yang-data+json
{ {
"ietf-yang-library:modules-state" : { "ietf-yang-library:modules-state" : {
"module-set-id" : "5479120c17a619545ea6aff7aa19838b036ebbd7", "module-set-id" : "5479120c17a619545ea6aff7aa19838b036ebbd7",
"module" : [ "module" : [
{ {
"name" : "foo", "name" : "foo",
"revision" : "2012-01-02", "revision" : "2012-01-02",
"schema" : "https://example.com/modules/foo/2012-01-02", "schema" : "https://example.com/modules/foo/2012-01-02",
skipping to change at page 117, line 19 skipping to change at page 117, line 19
RESTCONF query parameters, plus one vendor parameter: RESTCONF query parameters, plus one vendor parameter:
GET /restconf/data/ietf-restconf-monitoring:restconf-state/\ GET /restconf/data/ietf-restconf-monitoring:restconf-state/\
capabilities HTTP/1.1 capabilities HTTP/1.1
Host: example.com Host: example.com
Accept: application/yang-data+xml Accept: application/yang-data+xml
The server might respond as follows: The server might respond as follows:
HTTP/1.1 200 OK HTTP/1.1 200 OK
Date: Mon, 25 Apr 2016 17:02:00 GMT Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server Server: example-server
Cache-Control: no-cache Cache-Control: no-cache
Last-Modified: Fri, 22 Apr 2016 01:00:14 GMT Last-Modified: Thu, 26 Jan 2017 16:00:14 GMT
Content-Type: application/yang-data+xml Content-Type: application/yang-data+xml
<capabilities <capabilities
xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf-monitoring"> xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf-monitoring">
<capability>\ <capability>\
urn:ietf:params:restconf:capability:defaults:1.0?\ urn:ietf:params:restconf:capability:defaults:1.0?\
basic-mode=explicit\ basic-mode=explicit\
</capability> </capability>
<capability>\ <capability>\
urn:ietf:params:restconf:capability:with-defaults:1.0\ urn:ietf:params:restconf:capability:with-defaults:1.0\
skipping to change at page 118, line 27 skipping to change at page 118, line 27
"example-jukebox:artist" : [ "example-jukebox:artist" : [
{ {
"name" : "Foo Fighters" "name" : "Foo Fighters"
} }
] ]
} }
If the resource is created, the server might respond as follows: If the resource is created, the server might respond as follows:
HTTP/1.1 201 Created HTTP/1.1 201 Created
Date: Mon, 25 Apr 2016 17:02:00 GMT Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server Server: example-server
Location: https://example.com/restconf/data/\ Location: https://example.com/restconf/data/\
example-jukebox:jukebox/library/artist=Foo%20Fighters example-jukebox:jukebox/library/artist=Foo%20Fighters
Last-Modified: Mon, 25 Apr 2016 17:02:00 GMT Last-Modified: Thu, 26 Jan 2017 20:56:30 GMT
ETag: "b3830f23a4c" ETag: "b3830f23a4c"
To create a new "album" resource for this artist within the "jukebox" To create a new "album" resource for this artist within the "jukebox"
resource, the client might send the following request: resource, the client might send the following request:
POST /restconf/data/example-jukebox:jukebox/\ POST /restconf/data/example-jukebox:jukebox/\
library/artist=Foo%20Fighters HTTP/1.1 library/artist=Foo%20Fighters HTTP/1.1
Host: example.com Host: example.com
Content-Type: application/yang-data+xml Content-Type: application/yang-data+xml
<album xmlns="http://example.com/ns/example-jukebox"> <album xmlns="http://example.com/ns/example-jukebox">
<name>Wasting Light</name> <name>Wasting Light</name>
<year>2011</year> <year>2011</year>
</album> </album>
If the resource is created, the server might respond as follows: If the resource is created, the server might respond as follows:
HTTP/1.1 201 Created HTTP/1.1 201 Created
Date: Mon, 25 Apr 2016 17:03:00 GMT Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server Server: example-server
Location: https://example.com/restconf/data/\ Location: https://example.com/restconf/data/\
example-jukebox:jukebox/library/artist=Foo%20Fighters/\ example-jukebox:jukebox/library/artist=Foo%20Fighters/\
album=Wasting%20Light album=Wasting%20Light
Last-Modified: Mon, 25 Apr 2016 17:03:00 GMT Last-Modified: Thu, 26 Jan 2017 20:56:30 GMT
ETag: "b8389233a4c" ETag: "b8389233a4c"
B.2.2. Detect Datastore Resource Entity-Tag Change B.2.2. Detect Datastore Resource Entity-Tag Change
In this example, the server just supports the datastore last-changed In this example, the server just supports the datastore last-changed
timestamp. Assume that the client has cached the "Last-Modified" timestamp. Assume that the client has cached the "Last-Modified"
header from the response to the previous request. This value is used header from the response to the previous request. This value is used
as in the "If-Unmodified-Since" header in the following request to as in the "If-Unmodified-Since" header in the following request to
patch an "album" list entry with a key value of "Wasting Light". patch an "album" list entry with a key value of "Wasting Light".
Only the "genre" field is being updated. Only the "genre" field is being updated.
PATCH /restconf/data/example-jukebox:jukebox/\ PATCH /restconf/data/example-jukebox:jukebox/\
library/artist=Foo%20Fighters/album=Wasting%20Light/\ library/artist=Foo%20Fighters/album=Wasting%20Light/\
genre HTTP/1.1 genre HTTP/1.1
Host: example.com Host: example.com
If-Unmodified-Since: Mon, 25 Apr 2016 17:03:00 GMT If-Unmodified-Since: Thu, 26 Jan 2017 20:56:30 GMT
Content-Type: application/yang-data+json Content-Type: application/yang-data+json
{ "example-jukebox:genre" : "example-jukebox:alternative" } { "example-jukebox:genre" : "example-jukebox:alternative" }
In this example, the datastore resource has changed since the time In this example, the datastore resource has changed since the time
specified in the "If-Unmodified-Since" header. The server might specified in the "If-Unmodified-Since" header. The server might
respond as follows: respond as follows:
HTTP/1.1 412 Precondition Failed HTTP/1.1 412 Precondition Failed
Date: Mon, 25 Apr 2016 19:01:00 GMT Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server Server: example-server
Last-Modified: Mon, 25 Apr 2016 17:45:00 GMT Last-Modified: Thu, 26 Jan 2017 19:41:00 GMT
ETag: "b34aed893a4c" ETag: "b34aed893a4c"
B.2.3. Edit a Datastore Resource B.2.3. Edit a Datastore Resource
In this example, assume that there is a top-level data resource named In this example, assume that there is a top-level data resource named
"system" from the example-system module, and this container has a "system" from the example-system module, and this container has a
child leaf called "enable-jukebox-streaming": child leaf called "enable-jukebox-streaming":
container system { container system {
leaf enable-jukebox-streaming { leaf enable-jukebox-streaming {
skipping to change at page 124, line 19 skipping to change at page 124, line 19
client might send the following: client might send the following:
GET /restconf/data/example-events:events?\ GET /restconf/data/example-events:events?\
content=all HTTP/1.1 content=all HTTP/1.1
Host: example.com Host: example.com
Accept: application/yang-data+json Accept: application/yang-data+json
The server might respond as follows: The server might respond as follows:
HTTP/1.1 200 OK HTTP/1.1 200 OK
Date: Mon, 25 Apr 2016 17:11:30 GMT Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server Server: example-server
Cache-Control: no-cache Cache-Control: no-cache
Content-Type: application/yang-data+json Content-Type: application/yang-data+json
{ {
"example-events:events" : { "example-events:events" : {
"event" : [ "event" : [
{ {
"name" : "interface-up", "name" : "interface-up",
"description" : "Interface up notification count", "description" : "Interface up notification count",
skipping to change at page 125, line 20 skipping to change at page 125, line 20
value is "config". value is "config".
GET /restconf/data/example-events:events?\ GET /restconf/data/example-events:events?\
content=config HTTP/1.1 content=config HTTP/1.1
Host: example.com Host: example.com
Accept: application/yang-data+json Accept: application/yang-data+json
The server might respond as follows: The server might respond as follows:
HTTP/1.1 200 OK HTTP/1.1 200 OK
Date: Mon, 25 Apr 2016 17:11:30 GMT Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server Server: example-server
Last-Modified: Mon, 25 Apr 2016 13:01:20 GMT Last-Modified: Thu, 26 Jan 2017 16:45:20 GMT
ETag: "eeeada438af" ETag: "eeeada438af"
Cache-Control: no-cache Cache-Control: no-cache
Content-Type: application/yang-data+json Content-Type: application/yang-data+json
{ {
"example-events:events" : { "example-events:events" : {
"event" : [ "event" : [
{ {
"name" : "interface-up", "name" : "interface-up",
"description" : "Interface up notification count" "description" : "Interface up notification count"
skipping to change at page 126, line 20 skipping to change at page 126, line 20
might send the following: might send the following:
GET /restconf/data/example-events:events?\ GET /restconf/data/example-events:events?\
content=nonconfig HTTP/1.1 content=nonconfig HTTP/1.1
Host: example.com Host: example.com
Accept: application/yang-data+json Accept: application/yang-data+json
The server might respond as follows: The server might respond as follows:
HTTP/1.1 200 OK HTTP/1.1 200 OK
Date: Mon, 25 Apr 2016 17:11:30 GMT Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server Server: example-server
Cache-Control: no-cache Cache-Control: no-cache
Content-Type: application/yang-data+json Content-Type: application/yang-data+json
{ {
"example-events:events" : { "example-events:events" : {
"event" : [ "event" : [
{ {
"name" : "interface-up", "name" : "interface-up",
"event-count" : 42 "event-count" : 42
skipping to change at page 127, line 22 skipping to change at page 127, line 22
present or is set to the default value "unbounded". present or is set to the default value "unbounded".
GET /restconf/data/example-jukebox:jukebox?\ GET /restconf/data/example-jukebox:jukebox?\
depth=unbounded HTTP/1.1 depth=unbounded HTTP/1.1
Host: example.com Host: example.com
Accept: application/yang-data+json Accept: application/yang-data+json
The server might respond as follows: The server might respond as follows:
HTTP/1.1 200 OK HTTP/1.1 200 OK
Date: Mon, 25 Apr 2016 17:11:30 GMT Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server Server: example-server
Cache-Control: no-cache Cache-Control: no-cache
Content-Type: application/yang-data+json Content-Type: application/yang-data+json
{ {
"example-jukebox:jukebox" : { "example-jukebox:jukebox" : {
"library" : { "library" : {
"artist" : [ "artist" : [
{ {
"name" : "Foo Fighters", "name" : "Foo Fighters",
skipping to change at page 129, line 17 skipping to change at page 129, line 17
To determine if one or more resource instances exist for a given To determine if one or more resource instances exist for a given
target resource, the value "1" is used. target resource, the value "1" is used.
GET /restconf/data/example-jukebox:jukebox?depth=1 HTTP/1.1 GET /restconf/data/example-jukebox:jukebox?depth=1 HTTP/1.1
Host: example.com Host: example.com
Accept: application/yang-data+json Accept: application/yang-data+json
The server might respond as follows: The server might respond as follows:
HTTP/1.1 200 OK HTTP/1.1 200 OK
Date: Mon, 25 Apr 2016 17:11:30 GMT Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server Server: example-server
Cache-Control: no-cache Cache-Control: no-cache
Content-Type: application/yang-data+json Content-Type: application/yang-data+json
{ {
"example-jukebox:jukebox" : {} "example-jukebox:jukebox" : {}
} }
Example 3: depth=3 Example 3: depth=3
To limit the depth level to the target resource plus two child To limit the depth level to the target resource plus two child
resource layers, the value "3" is used. resource layers, the value "3" is used.
GET /restconf/data/example-jukebox:jukebox?depth=3 HTTP/1.1 GET /restconf/data/example-jukebox:jukebox?depth=3 HTTP/1.1
Host: example.com Host: example.com
Accept: application/yang-data+json Accept: application/yang-data+json
The server might respond as follows: The server might respond as follows:
HTTP/1.1 200 OK HTTP/1.1 200 OK
Date: Mon, 25 Apr 2016 17:11:30 GMT Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server Server: example-server
Cache-Control: no-cache Cache-Control: no-cache
Content-Type: application/yang-data+json Content-Type: application/yang-data+json
{ {
"example-jukebox:jukebox" : { "example-jukebox:jukebox" : {
"library" : { "library" : {
"artist" : {} "artist" : {}
}, },
"playlist" : [ "playlist" : [
skipping to change at page 131, line 13 skipping to change at page 131, line 13
returned because it is not selected in the fields expression. returned because it is not selected in the fields expression.
GET /restconf/data?fields=ietf-yang-library:modules-state/\ GET /restconf/data?fields=ietf-yang-library:modules-state/\
module(name;revision) HTTP/1.1 module(name;revision) HTTP/1.1
Host: example.com Host: example.com
Accept: application/yang-data+json Accept: application/yang-data+json
The server might respond as follows: The server might respond as follows:
HTTP/1.1 200 OK HTTP/1.1 200 OK
Date: Sat, 24 Dec 2016 17:01:00 GMT Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server Server: example-server
Content-Type: application/yang-data+json Content-Type: application/yang-data+json
{ {
"ietf-restconf:data" : { "ietf-restconf:data" : {
"ietf-yang-library:modules-state" : { "ietf-yang-library:modules-state" : {
"module" : [ "module" : [
{ {
"name" : "example-jukebox", "name" : "example-jukebox",
"revision" : "2015-06-04" "revision" : "2016-08-15"
}, },
{ {
"name" : "ietf-inet-types", "name" : "ietf-inet-types",
"revision" : "2013-07-15" "revision" : "2013-07-15"
}, },
{ {
"name" : "ietf-restconf-monitoring", "name" : "ietf-restconf-monitoring",
"revision" : "2016-12-21" "revision" : "2017-01-26"
}, },
{ {
"name" : "ietf-yang-library", "name" : "ietf-yang-library",
"revision" : "2016-06-21" "revision" : "2016-06-21"
}, },
{ {
"name" : "ietf-yang-types", "name" : "ietf-yang-types",
"revision" : "2013-07-15" "revision" : "2013-07-15"
} }
] ]
skipping to change at page 132, line 32 skipping to change at page 132, line 32
/artist[name='Foo Fighters']\ /artist[name='Foo Fighters']\
/album[name='Wasting Light']\ /album[name='Wasting Light']\
/song[name='Rope']" /song[name='Rope']"
} }
] ]
} }
Response from server: Response from server:
HTTP/1.1 201 Created HTTP/1.1 201 Created
Date: Mon, 25 Apr 2016 13:01:20 GMT Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server Server: example-server
Last-Modified: Mon, 25 Apr 2016 13:01:20 GMT Last-Modified: Thu, 26 Jan 2017 20:56:30 GMT
Location: https://example.com/restconf/data/\ Location: https://example.com/restconf/data/\
example-jukebox:jukebox/playlist=Foo-One/song=1 example-jukebox:jukebox/playlist=Foo-One/song=1
ETag: "eeeada438af" ETag: "eeeada438af"
B.3.5. "point" Parameter B.3.5. "point" Parameter
In this example, the client is inserting a new song entry in the In this example, the client is inserting a new song entry in the
"Foo-One" playlist after the first song. "Foo-One" playlist after the first song.
Request from client: Request from client:
skipping to change at page 133, line 34 skipping to change at page 133, line 34
/artist[name='Foo Fighters']\ /artist[name='Foo Fighters']\
/album[name='Wasting Light']\ /album[name='Wasting Light']\
/song[name='Bridge Burning']" /song[name='Bridge Burning']"
} }
] ]
} }
Response from server: Response from server:
HTTP/1.1 201 Created HTTP/1.1 201 Created
Date: Mon, 25 Apr 2016 13:01:20 GMT Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server Server: example-server
Last-Modified: Mon, 25 Apr 2016 13:01:20 GMT Last-Modified: Thu, 26 Jan 2017 20:56:30 GMT
Location: https://example.com/restconf/data/\ Location: https://example.com/restconf/data/\
example-jukebox:jukebox/playlist=Foo-One/song=2 example-jukebox:jukebox/playlist=Foo-One/song=2
ETag: "abcada438af" ETag: "abcada438af"
B.3.6. "filter" Parameter B.3.6. "filter" Parameter
The following URIs show some examples of notification filter The following URIs show some examples of notification filter
specifications: specifications:
// filter = /event/event-class='fault' // filter = /event/event-class='fault'
skipping to change at page 135, line 34 skipping to change at page 135, line 34
Without query parameter: Without query parameter:
GET /restconf/data/example:interfaces/interface=eth1 HTTP/1.1 GET /restconf/data/example:interfaces/interface=eth1 HTTP/1.1
Host: example.com Host: example.com
Accept: application/yang-data+json Accept: application/yang-data+json
The server might respond as follows: The server might respond as follows:
HTTP/1.1 200 OK HTTP/1.1 200 OK
Date: Mon, 25 Apr 2016 17:01:00 GMT Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server Server: example-server
Content-Type: application/yang-data+json Content-Type: application/yang-data+json
{ {
"example:interface" : [ "example:interface" : [
{ {
"name" : "eth1", "name" : "eth1",
"status" : "up" "status" : "up"
} }
] ]
skipping to change at page 136, line 15 skipping to change at page 136, line 15
With query parameter: With query parameter:
GET /restconf/data/example:interfaces/interface=eth1\ GET /restconf/data/example:interfaces/interface=eth1\
?with-defaults=report-all HTTP/1.1 ?with-defaults=report-all HTTP/1.1
Host: example.com Host: example.com
Accept: application/yang-data+json Accept: application/yang-data+json
The server might respond as follows: The server might respond as follows:
HTTP/1.1 200 OK HTTP/1.1 200 OK
Date: Mon, 25 Apr 2016 17:01:00 GMT Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server Server: example-server
Content-Type: application/yang-data+json Content-Type: application/yang-data+json
{ {
"example:interface" : [ "example:interface" : [
{ {
"name" : "eth1", "name" : "eth1",
"mtu" : 1500, "mtu" : 1500,
"status" : "up" "status" : "up"
} }
 End of changes. 58 change blocks. 
59 lines changed or deleted 59 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/