draft-ietf-netconf-restconf-06.txt   draft-ietf-netconf-restconf-07.txt 
Network Working Group A. Bierman Network Working Group A. Bierman
Internet-Draft YumaWorks Internet-Draft YumaWorks
Intended status: Standards Track M. Bjorklund Intended status: Standards Track M. Bjorklund
Expires: December 22, 2015 Tail-f Systems Expires: January 7, 2016 Tail-f Systems
K. Watsen K. Watsen
Juniper Networks Juniper Networks
June 20, 2015 July 6, 2015
RESTCONF Protocol RESTCONF Protocol
draft-ietf-netconf-restconf-06 draft-ietf-netconf-restconf-07
Abstract Abstract
This document describes an HTTP-based protocol that provides a This document describes an HTTP-based protocol that provides a
programmatic interface for accessing data defined in YANG, using the programmatic interface for accessing data defined in YANG, using the
datastores defined in NETCONF. datastores defined in NETCONF.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
skipping to change at page 1, line 35 skipping to change at page 1, line 35
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on December 22, 2015. This Internet-Draft will expire on January 7, 2016.
Copyright Notice Copyright Notice
Copyright (c) 2015 IETF Trust and the persons identified as the Copyright (c) 2015 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 4, line 6 skipping to change at page 4, line 6
11.2. YANG Module Registry . . . . . . . . . . . . . . . . . . 68 11.2. YANG Module Registry . . . . . . . . . . . . . . . . . . 68
11.3. application/yang Media Sub Types . . . . . . . . . . . . 69 11.3. application/yang Media Sub Types . . . . . . . . . . . . 69
11.4. RESTCONF Capability URNs . . . . . . . . . . . . . . . . 70 11.4. RESTCONF Capability URNs . . . . . . . . . . . . . . . . 70
12. Security Considerations . . . . . . . . . . . . . . . . . . . 71 12. Security Considerations . . . . . . . . . . . . . . . . . . . 71
13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 72 13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 72
14. References . . . . . . . . . . . . . . . . . . . . . . . . . 72 14. References . . . . . . . . . . . . . . . . . . . . . . . . . 72
14.1. Normative References . . . . . . . . . . . . . . . . . . 72 14.1. Normative References . . . . . . . . . . . . . . . . . . 72
14.2. Informative References . . . . . . . . . . . . . . . . . 75 14.2. Informative References . . . . . . . . . . . . . . . . . 75
Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . 75 Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . 75
A.1. 05 - 06 . . . . . . . . . . . . . . . . . . . . . . . . . 75 A.1. 06 - 07 . . . . . . . . . . . . . . . . . . . . . . . . . 75
A.2. 04 - 05 . . . . . . . . . . . . . . . . . . . . . . . . . 75 A.2. 05 - 06 . . . . . . . . . . . . . . . . . . . . . . . . . 76
A.3. 03 - 04 . . . . . . . . . . . . . . . . . . . . . . . . . 76 A.3. 04 - 05 . . . . . . . . . . . . . . . . . . . . . . . . . 76
A.4. 02 - 03 . . . . . . . . . . . . . . . . . . . . . . . . . 77 A.4. 03 - 04 . . . . . . . . . . . . . . . . . . . . . . . . . 76
A.5. 01 - 02 . . . . . . . . . . . . . . . . . . . . . . . . . 77 A.5. 02 - 03 . . . . . . . . . . . . . . . . . . . . . . . . . 77
A.6. 00 - 01 . . . . . . . . . . . . . . . . . . . . . . . . . 78 A.6. 01 - 02 . . . . . . . . . . . . . . . . . . . . . . . . . 78
A.7. bierman:restconf-04 to ietf:restconf-00 . . . . . . . . . 79 A.7. 00 - 01 . . . . . . . . . . . . . . . . . . . . . . . . . 78
A.8. bierman:restconf-04 to ietf:restconf-00 . . . . . . . . . 79
Appendix B. Open Issues . . . . . . . . . . . . . . . . . . . . 79 Appendix B. Open Issues . . . . . . . . . . . . . . . . . . . . 79
Appendix C. Example YANG Module . . . . . . . . . . . . . . . . 79 Appendix C. Example YANG Module . . . . . . . . . . . . . . . . 80
C.1. example-jukebox YANG Module . . . . . . . . . . . . . . . 80 C.1. example-jukebox YANG Module . . . . . . . . . . . . . . . 80
Appendix D. RESTCONF Message Examples . . . . . . . . . . . . . 85 Appendix D. RESTCONF Message Examples . . . . . . . . . . . . . 86
D.1. Resource Retrieval Examples . . . . . . . . . . . . . . . 86 D.1. Resource Retrieval Examples . . . . . . . . . . . . . . . 86
D.1.1. Retrieve the Top-level API Resource . . . . . . . . . 86 D.1.1. Retrieve the Top-level API Resource . . . . . . . . . 86
D.1.2. Retrieve The Server Module Information . . . . . . . 87 D.1.2. Retrieve The Server Module Information . . . . . . . 87
D.1.3. Retrieve The Server Capability Information . . . . . 88 D.1.3. Retrieve The Server Capability Information . . . . . 88
D.2. Edit Resource Examples . . . . . . . . . . . . . . . . . 89 D.2. Edit Resource Examples . . . . . . . . . . . . . . . . . 89
D.2.1. Create New Data Resources . . . . . . . . . . . . . . 89 D.2.1. Create New Data Resources . . . . . . . . . . . . . . 89
D.2.2. Detect Resource Entity Tag Change . . . . . . . . . . 90 D.2.2. Detect Resource Entity Tag Change . . . . . . . . . . 90
D.2.3. Edit a Datastore Resource . . . . . . . . . . . . . . 91 D.2.3. Edit a Datastore Resource . . . . . . . . . . . . . . 91
D.3. Query Parameter Examples . . . . . . . . . . . . . . . . 92 D.3. Query Parameter Examples . . . . . . . . . . . . . . . . 92
D.3.1. "content" Parameter . . . . . . . . . . . . . . . . . 92 D.3.1. "content" Parameter . . . . . . . . . . . . . . . . . 92
skipping to change at page 29, line 11 skipping to change at page 29, line 11
not have read privileges. If the user is not authorized to read the not have read privileges. If the user is not authorized to read the
target resource, an error response containing a "403 Forbidden" or target resource, an error response containing a "403 Forbidden" or
"404 Not Found" status-line is returned to the client. "404 Not Found" status-line is returned to the client.
If the user is authorized to read some but not all of the target If the user is authorized to read some but not all of the target
resource, the unauthorized content is omitted from the response resource, the unauthorized content is omitted from the response
message-body, and the authorized content is returned to the client. message-body, and the authorized content is returned to the client.
Example: Example:
The client might request the response headers for a JSON The client might request the response headers for an XML
representation of the "library" resource: representation of the "library" resource:
GET /restconf/data/example-jukebox:jukebox/ GET /restconf/data/example-jukebox:jukebox/
library/artist=Foo%20Fighters/album HTTP/1.1 library/artist=Foo%20Fighters/album HTTP/1.1
Host: example.com Host: example.com
Accept: application/yang.data+xml Accept: application/yang.data+xml
The server might respond: The server might respond:
HTTP/1.1 200 OK HTTP/1.1 200 OK
skipping to change at page 33, line 33 skipping to change at page 33, line 33
with the target resource. If the target resource is a datastore with the target resource. If the target resource is a datastore
resource (see Section 3.4), the message body MUST be either resource (see Section 3.4), the message body MUST be either
application/yang.datastore+xml or application/yang.datastore+json. application/yang.datastore+xml or application/yang.datastore+json.
If then the target resource is a data resource (see Section 3.5), If then the target resource is a data resource (see Section 3.5),
then the message body MUST be either application/yang.data+xml or then the message body MUST be either application/yang.data+xml or
application/yang.data+json. application/yang.data+json.
Plain patch can used to create or update, but not delete, a child Plain patch can used to create or update, but not delete, a child
resource within the target resource. Please see resource within the target resource. Please see
[I-D.ietf-netconf-yang-patch] for an alternate media-type supporting [I-D.ietf-netconf-yang-patch] for an alternate media-type supporting
more granular control. more granular control. The YANG Patch Media Type allows multiple
sub-operations (e.g., merge, delete) within a single PATCH operation.
Example: Example:
To replace just the "year" field in the "album" resource (instead of To replace just the "year" field in the "album" resource (instead of
replacing the entire resource with the PUT method), the client might replacing the entire resource with the PUT method), the client might
send a plain patch as follows. Note that the request-line is wrapped send a plain patch as follows. Note that the request-line is wrapped
for display purposes only: for display purposes only:
PATCH /restconf/data/example-jukebox:jukebox/ PATCH /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
skipping to change at page 42, line 29 skipping to change at page 42, line 29
o entry: the root of the RESTCONF API configured on this HTTP o entry: the root of the RESTCONF API configured on this HTTP
server, discovered by getting the ".well-known/host-meta" server, discovered by getting the ".well-known/host-meta"
resource, as described in Section 3.1. resource, as described in Section 3.1.
o resource: the path expression identifying the resource that is o resource: the path expression identifying the resource that is
being accessed by the operation. If this field is not present, being accessed by the operation. If this field is not present,
then the target resource is the API itself, represented by the then the target resource is the API itself, represented by the
media type "application/yang.api". media type "application/yang.api".
o query: the set of parameters associated with the RESTCONF message. o query: the set of parameters associated with the RESTCONF message.
These have the familiar form of "name=value" pairs. All query These have the familiar form of "name=value" pairs. Most query
parameters are optional to implement by the server and optional to parameters are optional to implement by the server and optional to
use by the client. Each query parameter is identified by a URI. use by the client. Each optional query parameter is identified by
The server MUST list the query parameter URIs it supports in the a URI. The server MUST list the optional query parameter URIs it
"capabilities" list defined in Section 9.3. supports in the "capabilities" list defined in Section 9.3.
There is a specific set of parameters defined, although the server There is a specific set of parameters defined, although the server
MAY choose to support query parameters not defined in this document. MAY choose to support query parameters not defined in this document.
The contents of the any query parameter value MUST be encoded The contents of the any query parameter value MUST be encoded
according to [RFC2396], Section 3.4. Any reserved characters MUST be according to [RFC2396], Section 3.4. Any reserved characters MUST be
encoded with escape sequences, according to [RFC2396], Section 2.4. encoded with escape sequences, according to [RFC2396], Section 2.4.
o fragment: This field is not used by the RESTCONF protocol. o fragment: This field is not used by the RESTCONF protocol.
When new resources are created by the client, a "Location" header is When new resources are created by the client, a "Location" header is
skipping to change at page 55, line 10 skipping to change at page 55, line 10
The following example shows an error returned for a "data-exists" The following example shows an error returned for a "data-exists"
error on a data resource. The "jukebox" resource already exists so error on a data resource. The "jukebox" resource already exists so
it cannot be created. it cannot be created.
The client might send: The client might send:
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: The server might respond (some lines wrapped for display purposes):
HTTP/1.1 409 Conflict HTTP/1.1 409 Conflict
Date: Mon, 23 Apr 2012 17:11:00 GMT Date: Mon, 23 Apr 2012 17:11:00 GMT
Server: example-server Server: example-server
Content-Type: application/yang.errors+json Content-Type: application/yang.errors+xml
{ <errors xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf">
"ietf-restconf:errors": { <error>
"error": { <error-type>protocol</error-type>
"error-type": "protocol", <error-tag>data-exists</error-tag>
"error-tag": "data-exists", <error-path
"error-urlpath": "https://example.com/restconf/data/ xmlns:rc="urn:ietf:params:xml:ns:yang:ietf-restconf"
example-jukebox:jukebox", xmlns:jb="https://example.com/ns/example-jukebox">
"error-message": /rc:restconf/rc:data/jb:jukebox
"Data already exists, cannot create new resource" </error-path>
} <error-message>
} Data already exists, cannot create new resource
} </error-message>
</error>
</errors>
8. RESTCONF module 8. RESTCONF module
The "ietf-restconf" module defines conceptual definitions within an The "ietf-restconf" module defines conceptual definitions within an
extension and two groupings, which are not meant to be implemented as extension and two groupings, which are not meant to be implemented as
datastore contents by a server. E.g., the "restconf" container is datastore contents by a server. E.g., the "restconf" container is
not intended to be implemented as a top-level data node (under the not intended to be implemented as a top-level data node (under the
"/restconf/data" entry point). "/restconf/data" entry point).
RFC Ed.: update the date below with the date of RFC publication and RFC Ed.: update the date below with the date of RFC publication and
skipping to change at page 61, line 16 skipping to change at page 61, line 19
} }
} }
<CODE ENDS> <CODE ENDS>
9. RESTCONF Monitoring 9. RESTCONF Monitoring
The "ietf-restconf-monitoring" module provides information about the The "ietf-restconf-monitoring" module provides information about the
RESTCONF protocol capabilities and event notification streams RESTCONF protocol capabilities and event notification streams
available from the server. Implementation is mandatory for RESTCONF available from the server. A RESTCONF server MUST implement the
servers, if any protocol capabilities or event notification streams "/restconf-state/capabilities" container in this module.
are supported.
YANG Tree Diagram for "ietf-restconf-monitoring" module: YANG Tree Diagram for "ietf-restconf-monitoring" module:
+--ro restconf-state +--ro restconf-state
+--ro capabilities +--ro capabilities
| +--ro capability* inet:uri | +--ro capability* inet:uri
+--ro streams +--ro streams
+--ro stream* [name] +--ro stream* [name]
+--ro name string +--ro name string
+--ro description? string +--ro description? string
skipping to change at page 62, line 50 skipping to change at page 63, line 5
Capability for NETCONF" [RFC6243]. Capability for NETCONF" [RFC6243].
+----------+--------------------------------------------------+ +----------+--------------------------------------------------+
| Name | URI | | Name | URI |
+----------+--------------------------------------------------+ +----------+--------------------------------------------------+
| defaults | urn:ietf:params:restconf:capability:defaults:1.0 | | defaults | urn:ietf:params:restconf:capability:defaults:1.0 |
+----------+--------------------------------------------------+ +----------+--------------------------------------------------+
RESTCONF defaults capability URI RESTCONF defaults capability URI
This protocol capability URI MUST be supported by the server, and the This protocol capability URI MUST be supported by the server, and
MUST be listed in the "capability" leaf-list in Section 9.3. MUST be listed in the "capability" leaf-list in Section 9.3.
+------------+------------------------------------------------------+ +------------+------------------------------------------------------+
| Value | Description | | Value | Description |
+------------+------------------------------------------------------+ +------------+------------------------------------------------------+
| report-all | No data nodes are considered default | | report-all | No data nodes are considered default |
| trim | Values set to the YANG default-stmt value are | | trim | Values set to the YANG default-stmt value are |
| | default | | | default |
| explicit | Values set by the client are never considered | | explicit | Values set by the client are never considered |
| | default | | | default |
skipping to change at page 72, line 28 skipping to change at page 72, line 28
The authors would like to thank the following people for their The authors would like to thank the following people for their
contributions to this document: Ladislav Lhotka, Juergen contributions to this document: Ladislav Lhotka, Juergen
Schoenwaelder, Rex Fernando, Robert Wilton, and Jonathan Hansford. Schoenwaelder, Rex Fernando, Robert Wilton, and Jonathan Hansford.
14. References 14. References
14.1. Normative References 14.1. Normative References
[I-D.ietf-netconf-yang-library] [I-D.ietf-netconf-yang-library]
Bierman, A., Bjorklund, M., and K. Watsen, "YANG Module Bierman, A., Bjorklund, M., and K. Watsen, "YANG Module
Library", draft-ietf-netconf-yang-library-00 (work in Library", draft-ietf-netconf-yang-library-01 (work in
progress), January 2015. progress), July 2015.
[I-D.ietf-netmod-yang-json] [I-D.ietf-netmod-yang-json]
Lhotka, L., "JSON Encoding of Data Modeled with YANG", Lhotka, L., "JSON Encoding of Data Modeled with YANG",
draft-ietf-netmod-yang-json-03 (work in progress), draft-ietf-netmod-yang-json-04 (work in progress), June
February 2015. 2015.
[I-D.ietf-netmod-yang-metadata] [I-D.ietf-netmod-yang-metadata]
Lhotka, L., "Defining and Using Metadata with YANG", Lhotka, L., "Defining and Using Metadata with YANG",
draft-ietf-netmod-yang-metadata-00 (work in progress), draft-ietf-netmod-yang-metadata-01 (work in progress),
April 2015. June 2015.
[RFC2046] Freed, N. and N. Borenstein, "Multipurpose Internet Mail [RFC2046] Freed, N. and N. Borenstein, "Multipurpose Internet Mail
Extensions (MIME) Part Two: Media Types", RFC 2046, Extensions (MIME) Part Two: Media Types", RFC 2046,
November 1996. November 1996.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2396] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform [RFC2396] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
Resource Identifiers (URI): Generic Syntax", RFC 2396, Resource Identifiers (URI): Generic Syntax", RFC 2396,
skipping to change at page 75, line 30 skipping to change at page 75, line 30
[draft-thomson-httpbis-cant-01] [draft-thomson-httpbis-cant-01]
Thomson, M., "Client Authentication over New TLS Thomson, M., "Client Authentication over New TLS
Connection", draft-thomson-httpbis-cant-01 (work in Connection", draft-thomson-httpbis-cant-01 (work in
progress), Jul 2014. progress), Jul 2014.
14.2. Informative References 14.2. Informative References
[I-D.ietf-netconf-yang-patch] [I-D.ietf-netconf-yang-patch]
Bierman, A., Bjorklund, M., and K. Watsen, "YANG Patch Bierman, A., Bjorklund, M., and K. Watsen, "YANG Patch
Media Type", draft-ietf-netconf-yang-patch-04 (work in Media Type", draft-ietf-netconf-yang-patch-05 (work in
progress), June 2015. progress), July 2015.
[rest-dissertation] [rest-dissertation]
Fielding, R., "Architectural Styles and the Design of Fielding, R., "Architectural Styles and the Design of
Network-based Software Architectures", 2000. Network-based Software Architectures", 2000.
Appendix A. Change Log Appendix A. Change Log
-- RFC Ed.: remove this section before publication. -- RFC Ed.: remove this section before publication.
The RESTCONF issue tracker can be found here: https://github.com/ The RESTCONF issue tracker can be found here: https://github.com/
netconf-wg/restconf/issues netconf-wg/restconf/issues
A.1. 05 - 06 A.1. 06 - 07
o fixed all issues identified in email from Jernej Tuljak in netconf
email 2015-06-22
o fixed error example bug where error-urlpath was still used.
Changed to error-path.
o added mention of YANG Patch and informative reference
A.2. 05 - 06
o fixed RESTCONF issue #23 (ietf-restconf-monitoring bug) o fixed RESTCONF issue #23 (ietf-restconf-monitoring bug)
A.2. 04 - 05 A.3. 04 - 05
o changed term 'notification event' to 'event notification' o changed term 'notification event' to 'event notification'
o removed intro text about framework and meta-model o removed intro text about framework and meta-model
o removed early mention of API resources o removed early mention of API resources
o removed term unified datastore and cleaned up text about NETCONF o removed term unified datastore and cleaned up text about NETCONF
datastores datastores
o removed text about not immediate persistence of edits o removed text about not immediate persistence of edits
o removed RESTCONF-specific data-resource-identifier typedef and its o removed RESTCONF-specific data-resource-identifier typedef and its
usage usage
skipping to change at page 76, line 35 skipping to change at page 76, line 46
o renamed stream/encoding/events to stream/access/location o renamed stream/encoding/events to stream/access/location
o changed XPath from informative to normative reference o changed XPath from informative to normative reference
o changed rest-dissertation from normative to informative reference o changed rest-dissertation from normative to informative reference
o changed example-jukebox playlist 'id' from a data-resource- o changed example-jukebox playlist 'id' from a data-resource-
identifier to a leafref pointing at the song name identifier to a leafref pointing at the song name
A.3. 03 - 04 A.4. 03 - 04
o renamed 'select' to 'fields' (#1) o renamed 'select' to 'fields' (#1)
o moved collection resource and page capability to draft-ietf- o moved collection resource and page capability to draft-ietf-
netconf-restconf-collection-00 (#3) netconf-restconf-collection-00 (#3)
o added mandatory "defaults" protocol capability URI (#4) o added mandatory "defaults" protocol capability URI (#4)
o added optional "with-defaults" query parameter URI (#4) o added optional "with-defaults" query parameter URI (#4)
skipping to change at page 77, line 24 skipping to change at page 77, line 33
o changed lock-denied error example o changed lock-denied error example
o added with-defaults query parameter example o added with-defaults query parameter example
o added term "RESTCONF Capability" o added term "RESTCONF Capability"
o changed NETCONF Capability URI registry usage to new RESTCONF o changed NETCONF Capability URI registry usage to new RESTCONF
Capability URI Registry usage Capability URI Registry usage
A.4. 02 - 03 A.5. 02 - 03
o added collection resource o added collection resource
o added "page" query parameter capability o added "page" query parameter capability
o added "limit" and "offset" query parameters, which are available o added "limit" and "offset" query parameters, which are available
if the "page" capability is supported if the "page" capability is supported
o added "stream list" term o added "stream list" term
skipping to change at page 77, line 43 skipping to change at page 78, line 4
o added "stream list" term o added "stream list" term
o fixed bugs in some examples o fixed bugs in some examples
o added "encoding" list within the "stream" list to allow different o added "encoding" list within the "stream" list to allow different
<events> URLs for XML and JSON encoding. <events> URLs for XML and JSON encoding.
o made XML MUST implement and JSON MAY implement for servers o made XML MUST implement and JSON MAY implement for servers
o re-add JSON notification examples (previously removed) o re-add JSON notification examples (previously removed)
o updated JSON references o updated JSON references
A.5. 01 - 02 A.6. 01 - 02
o moved query parameter definitions from the YANG module back to the o moved query parameter definitions from the YANG module back to the
plain text sections plain text sections
o made all query parameters optional to implement o made all query parameters optional to implement
o defined query parameter capability URI o defined query parameter capability URI
o moved 'streams' to new YANG module (ietf-restconf-monitoring) o moved 'streams' to new YANG module (ietf-restconf-monitoring)
o added 'capabilities' container to new YANG module (ietf-restconf- o added 'capabilities' container to new YANG module (ietf-restconf-
monitoring) monitoring)
o moved 'modules' container to new YANG module (ietf-yang-library) o moved 'modules' container to new YANG module (ietf-yang-library)
o added new leaf 'module-set-id' (ietf-yang-library) o added new leaf 'module-set-id' (ietf-yang-library)
skipping to change at page 78, line 35 skipping to change at page 78, line 44
information is no longer in this resource information is no longer in this resource
o closed issue #1 'select parameter' since no objections to the o closed issue #1 'select parameter' since no objections to the
proposed syntax proposed syntax
o closed "encoding of list keys" issue since no objection to new o closed "encoding of list keys" issue since no objection to new
encoding of list keys in a target resource URI. encoding of list keys in a target resource URI.
o moved open issues list to the issue tracker on github o moved open issues list to the issue tracker on github
A.6. 00 - 01 A.7. 00 - 01
o fixed content=nonconfig example (non-config was incorrect) o fixed content=nonconfig example (non-config was incorrect)
o closed open issue 'message-id'. There is no need for a message-id o closed open issue 'message-id'. There is no need for a message-id
field, and RFC 2392 does not apply. field, and RFC 2392 does not apply.
o closed open issue 'server support verification'. The headers used o closed open issue 'server support verification'. The headers used
by RESTCONF are widely supported. by RESTCONF are widely supported.
o removed encoding rules from section on RESTCONF Meta-Data. This o removed encoding rules from section on RESTCONF Meta-Data. This
skipping to change at page 79, line 33 skipping to change at page 79, line 42
the RESTCONF API using the /.well-known/host-meta. the RESTCONF API using the /.well-known/host-meta.
o added an "error" media type to for structured error messages o added an "error" media type to for structured error messages
o added Secure Transport section requiring TLS o added Secure Transport section requiring TLS
o added Security Considerations section o added Security Considerations section
o removed all references to "REST-like" o removed all references to "REST-like"
A.7. bierman:restconf-04 to ietf:restconf-00 A.8. bierman:restconf-04 to ietf:restconf-00
o updated open issues section o updated open issues section
Appendix B. Open Issues Appendix B. Open Issues
-- RFC Ed.: remove this section before publication. -- RFC Ed.: remove this section before publication.
The RESTCONF issues are tracked on github.com: The RESTCONF issues are tracked on github.com:
https://github.com/netconf-wg/restconf/issues https://github.com/netconf-wg/restconf/issues
skipping to change at page 87, line 39 skipping to change at page 87, line 47
{ {
"ietf-yang-library:modules": { "ietf-yang-library:modules": {
"module": [ "module": [
{ {
"name" : "foo", "name" : "foo",
"revision" : "2012-01-02", "revision" : "2012-01-02",
"schema" : "https://example.com/mymodules/foo/2012-01-02", "schema" : "https://example.com/mymodules/foo/2012-01-02",
"namespace" : "http://example.com/ns/foo", "namespace" : "http://example.com/ns/foo",
"feature" : [ "feature1", "feature2" ], "feature" : [ "feature1", "feature2" ],
"conformance" : true "conformance" : "implement"
}, },
{ {
"name" : "foo-types", "name" : "foo-types",
"revision" : "2012-01-05", "revision" : "2012-01-05",
"schema" : "schema" :
"https://example.com/mymodules/foo-types/2012-01-05", "https://example.com/mymodules/foo-types/2012-01-05",
"schema" : [null], "schema" : [null],
"namespace" : "http://example.com/ns/foo-types", "namespace" : "http://example.com/ns/foo-types",
"conformance" : false "conformance" : "import"
}, },
{ {
"name" : "bar", "name" : "bar",
"revision" : "2012-11-05", "revision" : "2012-11-05",
"schema" : "https://example.com/mymodules/bar/2012-11-05", "schema" : "https://example.com/mymodules/bar/2012-11-05",
"namespace" : "http://example.com/ns/bar", "namespace" : "http://example.com/ns/bar",
"feature" : [ "bar-ext" ], "feature" : [ "bar-ext" ],
"conformance" : true, "conformance" : "implement",
"submodule" : [ "submodule" : [
{ {
"name" : "bar-submod1", "name" : "bar-submod1",
"revision" : "2012-11-05", "revision" : "2012-11-05",
"schema" : "schema" :
"https://example.com/mymodules/bar-submod1/2012-11-05" "https://example.com/mymodules/bar-submod1/2012-11-05"
}, },
{ {
"name" : "bar-submod2", "name" : "bar-submod2",
"revision" : "2012-11-05", "revision" : "2012-11-05",
skipping to change at page 89, line 4 skipping to change at page 89, line 12
The server might respond as follows. The extra whitespace in The server might respond as follows. The extra whitespace in
'capability' elements for display purposes only. 'capability' elements for display purposes only.
HTTP/1.1 200 OK HTTP/1.1 200 OK
Date: Mon, 23 Apr 2012 17:02:00 GMT Date: Mon, 23 Apr 2012 17:02:00 GMT
Server: example-server Server: example-server
Cache-Control: no-cache Cache-Control: no-cache
Pragma: no-cache Pragma: no-cache
Last-Modified: Sun, 22 Apr 2012 01:00:14 GMT Last-Modified: Sun, 22 Apr 2012 01:00:14 GMT
Content-Type: application/yang.data+xml Content-Type: application/yang.data+xml
<capabilities xmlns=""> <capabilities xmlns="">
<capability> <capability>
urn:ietf:params:restconf:capability:content:1.0
</capability>
<capability>
urn:ietf:params:restconf:capability:depth:1.0 urn:ietf:params:restconf:capability:depth:1.0
</capability> </capability>
<capability> <capability>
urn:ietf:params:restconf:capability:fields:1.0 urn:ietf:params:restconf:capability:fields:1.0
</capability> </capability>
<capability> <capability>
urn:ietf:params:restconf:capability:filter:1.0 urn:ietf:params:restconf:capability:filter:1.0
</capability> </capability>
<capability> <capability>
urn:ietf:params:restconf:capability:point:1.0
</capability>
<capability>
urn:ietf:params:restconf:capability:start-time:1.0 urn:ietf:params:restconf:capability:start-time:1.0
</capability> </capability>
<capability> <capability>
urn:ietf:params:restconf:capability:stop-time:1.0 urn:ietf:params:restconf:capability:stop-time:1.0
</capability> </capability>
<capability> <capability>
http://example.com/capabilities/myparam http://example.com/capabilities/myparam
</capability> </capability>
</capabilities> </capabilities>
skipping to change at page 99, line 27 skipping to change at page 99, line 27
{ {
"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" : "2015-06-19" "revision" : "2015-06-19"
}, },
{ {
"name" : "ietf-yang-library", "name" : "ietf-yang-library",
"revision" : "2015-01-30" "revision" : "2015-07-03"
}, },
{ {
"name" : "ietf-yang-types", "name" : "ietf-yang-types",
"revision" : "2013-07-15" "revision" : "2013-07-15"
} }
] ]
} }
} }
 End of changes. 38 change blocks. 
63 lines changed or deleted 73 lines changed or added

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