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/ |