draft-ietf-core-interfaces-10.txt | draft-ietf-core-interfaces-11.txt | |||
---|---|---|---|---|
CoRE Working Group Z. Shelby | CoRE Working Group Z. Shelby | |||
Internet-Draft ARM | Internet-Draft ARM | |||
Intended status: Informational M. Vial | Intended status: Informational M. Vial | |||
Expires: March 18, 2018 Schneider-Electric | Expires: September 6, 2018 Schneider-Electric | |||
M. Koster | M. Koster | |||
SmartThings | SmartThings | |||
C. Groves | C. Groves | |||
J. Zhu | J. Zhu | |||
Huawei | Huawei | |||
B. Silverajan, Ed. | B. Silverajan, Ed. | |||
Tampere University of Technology | Tampere University of Technology | |||
September 14, 2017 | March 05, 2018 | |||
Reusable Interface Definitions for Constrained RESTful Environments | Reusable Interface Definitions for Constrained RESTful Environments | |||
draft-ietf-core-interfaces-10 | draft-ietf-core-interfaces-11 | |||
Abstract | Abstract | |||
This document defines a set of Constrained RESTful Environments | This document defines a set of Constrained RESTful Environments | |||
(CoRE) Link Format Interface Descriptions [RFC6690] applicable for | (CoRE) Link Format Interface Descriptions [RFC6690] applicable for | |||
use in constrained environments. These include the: Actuator, | use in constrained environments. These include the: Actuator, | |||
Parameter, Read-only parameter, Sensor, Batch, Linked Batch and Link | Parameter, Read-only parameter, Sensor, Batch, Linked Batch and Link | |||
List interfaces. | List interfaces. | |||
The Batch, Linked Batch and Link List interfaces make use of resource | The Batch, Linked Batch and Link List interfaces make use of resource | |||
collections. This document further describes how collections relate | collections. This document further describes how collections relate | |||
to interfaces. | to interfaces. | |||
Many applications require a set of interface descriptions in order | Many applications require a set of interface descriptions in order | |||
provide the required functionality. This document defines the | provide the required functionality. This document defines an | |||
concept of function sets to specify this set of interfaces and | Interface Description atribute value to describe resources conforming | |||
resources. | to a particular interface. | |||
Editor's notes: | Editor's notes: | |||
o The git repository for the draft is found at https://github.com/ | o The git repository for the draft is found at https://github.com/ | |||
core-wg/interfaces | core-wg/interfaces | |||
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 | |||
provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
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 https://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 March 18, 2018. | This Internet-Draft will expire on September 6, 2018. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2017 IETF Trust and the persons identified as the | Copyright (c) 2018 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 | (https://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 | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
3. Collections . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 3. Collections . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
3.1. Introduction to Collections . . . . . . . . . . . . . . . 5 | 3.1. Introduction to Collections . . . . . . . . . . . . . . . 5 | |||
3.2. Use Cases for Collections . . . . . . . . . . . . . . . . 6 | 3.2. Use Cases for Collections . . . . . . . . . . . . . . . . 5 | |||
3.3. Content-Formats for Collections . . . . . . . . . . . . . 6 | 3.3. Content-Formats for Collections . . . . . . . . . . . . . 6 | |||
3.4. Links and Items in Collections . . . . . . . . . . . . . 7 | 3.4. Link Embedding . . . . . . . . . . . . . . . . . . . . . 6 | |||
3.5. Queries on Collections . . . . . . . . . . . . . . . . . 8 | 3.5. Links and Items in Collections . . . . . . . . . . . . . 7 | |||
3.6. Observing Collections . . . . . . . . . . . . . . . . . . 8 | 3.6. Queries on Collections . . . . . . . . . . . . . . . . . 8 | |||
3.7. Collection Types . . . . . . . . . . . . . . . . . . . . 8 | 3.7. Observing Collections . . . . . . . . . . . . . . . . . . 8 | |||
3.8. Collection Types . . . . . . . . . . . . . . . . . . . . 8 | ||||
4. Interface Descriptions . . . . . . . . . . . . . . . . . . . 9 | 4. Interface Descriptions . . . . . . . . . . . . . . . . . . . 9 | |||
4.1. Link List . . . . . . . . . . . . . . . . . . . . . . . . 11 | 4.1. Link List . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
4.2. Batch . . . . . . . . . . . . . . . . . . . . . . . . . . 11 | 4.2. Batch . . . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
4.3. Linked Batch . . . . . . . . . . . . . . . . . . . . . . 12 | 4.3. Linked Batch . . . . . . . . . . . . . . . . . . . . . . 12 | |||
4.4. Sensor . . . . . . . . . . . . . . . . . . . . . . . . . 13 | 4.4. Sensor . . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
4.5. Parameter . . . . . . . . . . . . . . . . . . . . . . . . 14 | 4.5. Parameter . . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
4.6. Read-only Parameter . . . . . . . . . . . . . . . . . . . 14 | 4.6. Read-only Parameter . . . . . . . . . . . . . . . . . . . 14 | |||
4.7. Actuator . . . . . . . . . . . . . . . . . . . . . . . . 14 | 4.7. Actuator . . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
5. Security Considerations . . . . . . . . . . . . . . . . . . . 15 | 5. Security Considerations . . . . . . . . . . . . . . . . . . . 15 | |||
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 | |||
skipping to change at page 3, line 15 ¶ | skipping to change at page 3, line 16 ¶ | |||
6.3. Linked Batch . . . . . . . . . . . . . . . . . . . . . . 16 | 6.3. Linked Batch . . . . . . . . . . . . . . . . . . . . . . 16 | |||
6.4. Sensor . . . . . . . . . . . . . . . . . . . . . . . . . 16 | 6.4. Sensor . . . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
6.5. Parameter . . . . . . . . . . . . . . . . . . . . . . . . 16 | 6.5. Parameter . . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
6.6. Read-only parameter . . . . . . . . . . . . . . . . . . . 17 | 6.6. Read-only parameter . . . . . . . . . . . . . . . . . . . 17 | |||
6.7. Actuator . . . . . . . . . . . . . . . . . . . . . . . . 17 | 6.7. Actuator . . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 17 | 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 17 | |||
8. Changelog . . . . . . . . . . . . . . . . . . . . . . . . . . 18 | 8. Changelog . . . . . . . . . . . . . . . . . . . . . . . . . . 18 | |||
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 21 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 21 | |||
9.1. Normative References . . . . . . . . . . . . . . . . . . 21 | 9.1. Normative References . . . . . . . . . . . . . . . . . . 21 | |||
9.2. Informative References . . . . . . . . . . . . . . . . . 21 | 9.2. Informative References . . . . . . . . . . . . . . . . . 21 | |||
Appendix A. Current Usage of Interfaces and Function Sets . . . 22 | Appendix A. Current Usage of Interfaces and Function Sets . . . 23 | |||
A.1. Constrained RESTful Environments (CoRE) Link Format | A.1. Constrained RESTful Environments (CoRE) Link Format | |||
(IETF) . . . . . . . . . . . . . . . . . . . . . . . . . 23 | (IETF) . . . . . . . . . . . . . . . . . . . . . . . . . 23 | |||
A.2. CoRE Resource Directory (IETF) . . . . . . . . . . . . . 23 | A.2. CoRE Resource Directory (IETF) . . . . . . . . . . . . . 23 | |||
A.3. Open Connectivity Foundation (OCF) . . . . . . . . . . . 23 | A.3. Open Connectivity Foundation (OCF) . . . . . . . . . . . 23 | |||
A.4. oneM2M . . . . . . . . . . . . . . . . . . . . . . . . . 24 | A.4. oneM2M . . . . . . . . . . . . . . . . . . . . . . . . . 24 | |||
A.5. OMA LWM2M . . . . . . . . . . . . . . . . . . . . . . . . 24 | A.5. OMA LWM2M . . . . . . . . . . . . . . . . . . . . . . . . 25 | |||
Appendix B. Resource Profile example . . . . . . . . . . . . . . 25 | Appendix B. Resource Profile example . . . . . . . . . . . . . . 25 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 26 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 26 | |||
1. Introduction | 1. Introduction | |||
IETF Standards for machine to machine communication in constrained | IETF Standards for machine to machine communication in constrained | |||
environments describe a REST protocol and a set of related | environments describe a REST protocol and a set of related | |||
information standards that may be used to represent machine data and | information standards that may be used to represent machine data and | |||
machine metadata in REST interfaces. CoRE Link-format is a standard | machine metadata in REST interfaces. CoRE Link-format is a standard | |||
for doing Web Linking [RFC5988] in constrained environments. SenML | for doing Web Linking [RFC8288] in constrained environments. SenML | |||
[I-D.ietf-core-senml] is a simple data model and representation | [I-D.ietf-core-senml] is a simple data model and representation | |||
format for composite and complex structured resources. CoRE Link- | format for composite and complex structured resources. CoRE Link- | |||
Format and SenML can be used by CoAP [RFC7252] or HTTP servers. | Format and SenML can be used by CoAP [RFC7252] or HTTP servers. | |||
The discovery of resources offered by a constrained server is very | The discovery of resources offered by a constrained server is very | |||
important in machine-to-machine applications where there are no | important in machine-to-machine applications where there are no | |||
humans in the loop. Machine application clients must be able to | humans in the loop. Machine application clients must be able to | |||
adapt to different resource organizations without advance knowledge | adapt to different resource organizations without advance knowledge | |||
of the specific data structures hosted by each connected thing. The | of the specific data structures hosted by each connected thing. The | |||
use of Web Linking for the description and discovery of resources | use of Web Linking for the description and discovery of resources | |||
hosted by constrained web servers is specified by CoRE Link Format | hosted by constrained origin servers is specified by CoRE Link Format | |||
[RFC6690]. CoRE Link Format additionally defines a link attribute | [RFC6690]. CoRE Link Format additionally defines a link attribute | |||
for interface description ("if") that can be used to describe the | for interface description ("if") that can be used to describe the | |||
REST interface of a resource, and may include a link to a description | REST interface of a resource, and may include a link to a description | |||
document. | document. | |||
This document defines a set of Link Format interface descriptions for | This document defines a set of Link Format interface descriptions for | |||
some common design patterns that enable the server side composition | some common design patterns that enable the server side composition | |||
and organization, and client side discovery and consumption, of | and organization, and client side discovery and consumption, of | |||
machine resources using Web Linking. A client discovering the "if" | machine resources using Web Linking. A client discovering the "if" | |||
link attribute will be able to consume resources based on its | link attribute will be able to consume resources based on its | |||
skipping to change at page 4, line 34 ¶ | skipping to change at page 4, line 35 ¶ | |||
interfaces described can also be realized using HTTP [RFC7230]. | interfaces described can also be realized using HTTP [RFC7230]. | |||
2. Terminology | 2. Terminology | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
"OPTIONAL" in this document are to be interpreted as described in | "OPTIONAL" in this document are to be interpreted as described in | |||
[RFC2119]. | [RFC2119]. | |||
This document requires readers to be familiar with all the terms and | This document requires readers to be familiar with all the terms and | |||
concepts that are discussed in [RFC5988] and [RFC6690]. This | concepts that are discussed in [RFC8288] and [RFC6690]. This | |||
document makes use of the following additional terminology: | document makes use of the following additional terminology: | |||
Gradual Reveal: A REST design where resources are discovered | Gradual Reveal: A REST design where resources are discovered | |||
progressively using Web Linking. | progressively using Web Linking. | |||
Interface Description: The Interface Description describes the | Interface Description: The Interface Description describes the | |||
generic REST interface to interact with a resource or a set of | generic REST interface to interact with a resource or a set of | |||
resources. Its use is described via the Interface Description | resources. Its use is described via the Interface Description | |||
'if' attribute which is an opaque string used to provide a name or | 'if' attribute which is an opaque string used to provide a name or | |||
URI indicating a specific interface definition used to interact | URI indicating a specific interface definition used to interact | |||
with the target resource. One can think of this as describing | with the target resource. One can think of this as describing | |||
verbs usable on a resource. | verbs usable on a resource. | |||
Resource Discovery: The process allowing a web client to identify | Resource Discovery: The process allowing a client to identify | |||
resources being hosted on a web server. | resources being hosted on an origin server. | |||
Service Discovery: The process making it possible for a web client | ||||
to automatically detect devices and Function Sets offered by these | ||||
devices on a CoRE network. | ||||
3. Collections | 3. Collections | |||
3.1. Introduction to Collections | 3.1. Introduction to Collections | |||
A Collection is a resource which represents one or more related | A Collection is a resource which represents one or more related | |||
resources. [RFC6573] describes the "item" and "collection" Link | resources. [RFC6573] describes the "item" and "collection" Link | |||
Relation. "item" link relation identifies a member of collection. | Relation. An "item" link relation identifies a member of collection. | |||
"collection" indicates the collection that an item is a member of. | A "collection" indicates the collection that an item is a member of. | |||
For example: A collection might be a resource representing catalog of | For example, a collection might be a resource representing a catalog | |||
products, an item is a resource related to an individual product. | of products, while an item is a resource related to an individual | |||
product. | ||||
Section 1.2.2/[RFC6690] also describes resource collections. | Section 1.2.2/[RFC6690] also describes resource collections. | |||
This document uses the concept of "collection" and applies it to | This document uses the concept of "collection" and applies it to | |||
interface descriptions. A collection interface description consists | interface descriptions. A collection interface description consists | |||
of a set of links and a set of items pointed to by the links which | of a set of links and a set of items pointed to by the links which | |||
may be sub-resources of the collection resource. The collection | may be sub-resources of the collection resource. The collection | |||
interface descriptions described in this document are Link List, | interface descriptions described in this document are Link List, | |||
Batch and Linked Batch. | Batch and Linked Batch. | |||
skipping to change at page 5, line 44 ¶ | skipping to change at page 5, line 41 ¶ | |||
A particular resource item may be a member of more than one | A particular resource item may be a member of more than one | |||
collection at a time by being linked to, but may only be a | collection at a time by being linked to, but may only be a | |||
subresource of one collection. | subresource of one collection. | |||
Some collections may have pre-configured items and links, and some | Some collections may have pre-configured items and links, and some | |||
collections may support dynamic creation and removal of items and | collections may support dynamic creation and removal of items and | |||
links. Likewise, modification of items in some collections may be | links. Likewise, modification of items in some collections may be | |||
permitted, and not in others. | permitted, and not in others. | |||
Collections may support link embedding, which is analogous to an | ||||
image tag (link) causing the image to display inline in a browser | ||||
window. Resources pointed to by embedded links in collections may be | ||||
interacted with using bulk operations on the collection resource. | ||||
For example, performing a GET on a collection resource may return a | ||||
single representation containing all of the linked resources. | ||||
Links in collections may be selected for processing by a particular | Links in collections may be selected for processing by a particular | |||
request by using Query Filtering as described in CoRE Link-Format | request by using Query Filtering as described in CoRE Link-Format | |||
[RFC6690]. | [RFC6690]. | |||
3.2. Use Cases for Collections | 3.2. Use Cases for Collections | |||
Collections may be used to provide gradual reveal of resources on an | Collections may be used to provide gradual reveal of resources on an | |||
endpoint. There may be a small set of links at the .well-known/core | endpoint. There may be a small set of links at the .well-known/core | |||
location, which may in turn point to other collections of resources | location, which may in turn point to other collections of resources | |||
that represent device information, device configuration, device | that represent device information, device configuration, device | |||
management, and various functional clusters of resources on the | management, and various functional clusters of resources on the | |||
device. | device. | |||
A collection may provide resource encapsulation, where link embedding | ||||
may be used to provide a single resource with which a client may | ||||
interact to obtain a set of related resource values. For example, a | ||||
collection for manufacturer parameters may consist of manufacturer | ||||
name, date of manufacture, location of manufacture, and serial number | ||||
resources which can be read as a single senml data object. | ||||
A collection may be used to group a set of like resources for bulk | A collection may be used to group a set of like resources for bulk | |||
state update or actuation. For example, the brightness control | state update or actuation. For example, the brightness control | |||
resources of a number of luminaries may be grouped by linking to them | resources of a number of luminaries may be grouped by linking to them | |||
in a collection. The collection type may support receiving a single | in a collection. The collection type may support receiving a single | |||
update form a client and sending that update to each resource item in | update from a client and sending that update to each resource item in | |||
the collection. | the collection. | |||
Items may be sub-resources of the collection resource. This enables | Items may be sub-resources of the collection resource. This enables | |||
updates to multiple items in the collection to be processed together | updates to multiple items in the collection to be processed together | |||
within the context of the collection resource. | within the context of the collection resource. | |||
3.3. Content-Formats for Collections | 3.3. Content-Formats for Collections | |||
The collection interfaces by default use CoRE Link-Format for the | The collection interfaces by default use CoRE Link-Format for the | |||
link representations and SenML or text/plain for representations of | link representations and SenML or text/plain for representations of | |||
skipping to change at page 7, line 12 ¶ | skipping to change at page 6, line 39 ¶ | |||
by the Content-Format option in the header of the update request | by the Content-Format option in the header of the update request | |||
operation. | operation. | |||
The default Content-Formats for collection types described in this | The default Content-Formats for collection types described in this | |||
document are: | document are: | |||
Links: application/link-format, application/link-format+json | Links: application/link-format, application/link-format+json | |||
Items: application/senml+json, text/plain | Items: application/senml+json, text/plain | |||
3.4. Links and Items in Collections | 3.4. Link Embedding | |||
Collections may provide resource encapsulation by supporting link | ||||
embedding. Link embedding may be used to provide a single resource | ||||
with which a client may interact to obtain a set of related resource | ||||
values. This is analogous to an image tag (link) causing the image | ||||
to display inline in a browser window. Link embedding enables the | ||||
bulk processing of items in the collection using a single operation | ||||
targeting the collection resource. Performing a GET on a collection | ||||
resource may return a single representation containing all of the | ||||
embedded linked resources. For example, a collection for | ||||
manufacturer parameters may consist of manufacturer name, date of | ||||
manufacture, location of manufacture, and serial number resources | ||||
which can be read as a single senml data object. | ||||
A subset of resources in the collection may be selected for operation | ||||
using Query Filtering. Bulk Read operations using GET return a SenML | ||||
representation of all selected resources. Bulk item Update | ||||
operations using PUT or POST apply the payload document to all | ||||
selected resource items in the collection, using either a Batch or | ||||
Group update policy. A Batch update is performed by applying the | ||||
resource values in the payload document to all resources in the | ||||
collection that match any resource name in the payload document. | ||||
Group updates are performed by applying the payload document to each | ||||
item in the collection. Group updates are indicated by the link | ||||
relation type rel="grp" in the link. | ||||
3.5. Links and Items in Collections | ||||
Links use CoRE Link-Format representation by default and may point to | Links use CoRE Link-Format representation by default and may point to | |||
any resource reachable from the context of the collection. This | any resource reachable from the context of the collection. This | |||
includes absolute links and links that point to other network | includes links to resources with absolute paths as well as links that | |||
locations if the context of the collection allows. Links to sub- | point to other network locations, if the context of the collection | |||
resources in the collection MUST have a path-element starting with | allows. Links to sub-resources in the collection MUST have a path- | |||
the resource name, as per [RFC3986]. Links to resources in the | element starting with the resource name, as per [RFC3986]. Links to | |||
global context MUST start with a root path identifier [RFC5988]. | resources in the global context MUST start with a root path | |||
Links to other collections are formed per [RFC3986]. | identifier [RFC8288]. Links to other collections are formed per | |||
[RFC3986]. | ||||
Examples of links: | Examples of links: | |||
</sen/>;if="core.lb"': Link to the /sen/ collection describing it as | </sen/>;if="core.lb": Link to the /sen/ collection describing it as | |||
a core.lb type collection (Linked Batch) | a core.lb type collection (Linked Batch) | |||
</sen/>;rel="grp"': Link to the /sen/ collection indicating that | </sen/>;rel="grp": Link to the /sen/ collection indicating that | |||
/sen/ is a member of a group in the collection in which the link | /sen/ is a member of a group in the collection in which the link | |||
appears. | appears. | |||
<"/sen/temp">;rt="temperature"': An absolute link to the resource at | </sen/temp>;rt="temperature": A link to the temp resource with an | |||
the path /sen/temp | absolute path. | |||
<temp>;rt="temperature": Link to the temp subresource of the | <temp>;rt="temperature": Link to the temp subresource of the | |||
collection in which this link appears." | collection in which this link appears. | |||
<temp>;anchor="/sen/": A link to the temp subresource of the | <temp>;anchor="/sen/": A link to the temp subresource of the | |||
collection /sen/ which is assumed not to be a subresource of the | collection /sen/ which is assumed not to be a subresource of the | |||
collection in which the link appears ,but is expected to be | collection in which the link appears, but is expected to be | |||
identified in the collection by resource name. | identified in the collection by resource name. | |||
Links in the collection MAY be Read, Updated, Added, or Removed using | Links in the collection MAY be Read, Updated, Added, or Removed using | |||
the CoRE Link-Format or JSON Merge-Patch Content-Formats on the | the CoRE Link-Format or JSON Merge-Patch Content-Formats on the | |||
collection resource. Reading links uses the GET method and returns | collection resource. Reading links uses the GET method and returns | |||
an array or list containing the link-values of all selected links. | an array or list containing the link-values of all selected links. | |||
Links may be added to the collection using POST or PATCH methods. | Links may be added to the collection using POST or PATCH methods. | |||
Updates to links MUST use the PATCH method and MAY use query | Updates to links MUST use the PATCH method and MAY use query | |||
filtering to select links for updating. The PATCH method on links | filtering to select links for updating. The PATCH method on links | |||
MUST use the JSON Merge-Patch Content-Format (application/merge- | MUST use the JSON Merge-Patch Content-Format (application/merge- | |||
patch+json) specified in [RFC7396]. | patch+json) specified in [RFC7396]. | |||
Items in the collection SHOULD be represented using the SenML | Items in the collection SHOULD be represented using the SenML | |||
(application/senml+json) or plain text (text/plain) Content-Formats, | (application/senml+json) or plain text (text/plain) Content-Formats, | |||
depending on whether the representation is of a single data point or | depending on whether the representation is of a single data point or | |||
multiple data points. Items MAY be represented using any supported | multiple data points. Items MAY be represented using any supported | |||
skipping to change at page 8, line 11 ¶ | skipping to change at page 8, line 17 ¶ | |||
filtering to select links for updating. The PATCH method on links | filtering to select links for updating. The PATCH method on links | |||
MUST use the JSON Merge-Patch Content-Format (application/merge- | MUST use the JSON Merge-Patch Content-Format (application/merge- | |||
patch+json) specified in [RFC7396]. | patch+json) specified in [RFC7396]. | |||
Items in the collection SHOULD be represented using the SenML | Items in the collection SHOULD be represented using the SenML | |||
(application/senml+json) or plain text (text/plain) Content-Formats, | (application/senml+json) or plain text (text/plain) Content-Formats, | |||
depending on whether the representation is of a single data point or | depending on whether the representation is of a single data point or | |||
multiple data points. Items MAY be represented using any supported | multiple data points. Items MAY be represented using any supported | |||
Content-Format. | Content-Format. | |||
Link Embedding enables the bulk processing of items in the collection | 3.6. Queries on Collections | |||
using a single operation targeting the collection resource. A subset | ||||
of resources in the collection may be selected for operation using | ||||
Query Filtering. Bulk Read operations using GET return a SenML | ||||
representation of all selected resources. Bulk item Update | ||||
operations using PUT or POST apply the payload document to all | ||||
selected resource items in the collection, using either a Batch or | ||||
Group update policy. A Batch update is performed by applying the | ||||
resource values in the payload document to all resources in the | ||||
collection that match any resource name in the payload document. | ||||
Group updates are performed by applying the payload document to each | ||||
item in the collection. Group updates are indicated by the link | ||||
relation type rel="grp" in the link. | ||||
3.5. Queries on Collections | ||||
Collections MAY support query filtering as defined in CoRE Link- | Collections MAY support query filtering as defined in CoRE Link- | |||
Format [RFC6690]. Operations targeting either the links or the items | Format [RFC6690]. Operations targeting either the links or the items | |||
MAY select a subset of links and items in the collection by using | MAY select a subset of links and items in the collection by using | |||
query filtering. The Content-Format specified in the request header | query filtering. The Content-Format specified in the request header | |||
selects whether links or items are targeted by the operation. | selects whether links or items are targeted by the operation. | |||
3.6. Observing Collections | 3.7. Observing Collections | |||
Resource Observation via [I-D.ietf-core-dynlink] using CoAP [RFC7252] | Resource Observation via [I-D.ietf-core-dynlink] using CoAP [RFC7252] | |||
MAY be supported on items in a collection. A subset of the | MAY be supported on items in a collection. A subset of the | |||
conditional observe parameters MAY be specified to apply. In most | conditional observe parameters MAY be specified to apply. In most | |||
cases pmin and pmax are useful. Resource observation on a | cases pmin and pmax are useful. Resource observation on a | |||
collection's items resource returns the collection representation. | collection's resource returns the collection representation. | |||
Observation Responses, or notifications, SHOULD provide the | Observation Responses, or notifications, SHOULD provide the | |||
collection representations in SenML Content-Format. Notifications | collection representations in SenML Content-Format. Notifications | |||
MAY include multiple observations of the collection resource, with | MAY include multiple observations of the collection resource, with | |||
SenML time stamps indicating the observation times. | SenML time stamps indicating the observation times. | |||
3.7. Collection Types | 3.8. Collection Types | |||
There are three collection types defined in this document: | There are three collection types defined in this document: | |||
+-----------------+---------+--------------------+ | +-----------------+---------+--------------------+ | |||
| Collection Type | if= | Content-Format | | | Collection Type | if= | Content-Format | | |||
+-----------------+---------+--------------------+ | +-----------------+---------+--------------------+ | |||
| Link List | core.ll | link-format | | | Link List | core.ll | link-format | | |||
| | | | | | | | | | |||
| Batch | core.b | link-format, senml | | | Batch | core.b | link-format, senml | | |||
| | | | | | | | | | |||
| Linked Batch | core.lb | link-format, senml | | | Linked Batch | core.lb | link-format, senml | | |||
+-----------------+---------+--------------------+ | +-----------------+---------+--------------------+ | |||
Table 1: Collection Type Summary | Table 1: Collection Type Summary | |||
The interface description defined in this document describes the | The interface description defined in this document offer a deeper | |||
methods and functions that may be applied to the collections. | explanation of the methods and functions that may be applied to the | |||
three collections. | ||||
4. Interface Descriptions | 4. Interface Descriptions | |||
This section defines REST interfaces for Link List, Batch, Sensor, | This section defines REST interfaces for Sensor, Parameter, Read-Only | |||
Parameter and Actuator resources. Variants such as Linked Batch or | Paramter and Actuator resource types, in addition to the Link List, | |||
Read-Only Parameter are also presented. Each type is described along | Batch and Linked Batch collection types. Each type is described | |||
with its Interface Description attribute value and valid methods. | along with its Interface Description attribute value, valid methods | |||
These are defined for each interface in the table below. These | and content formats. These are shown for each interface in the table | |||
interfaces can support plain text and/or SenML Media types. | below. | |||
The if= column defines the Interface Description (if=) attribute | The if= column defines the Interface Description (if=) attribute | |||
value to be used in the CoRE Link Format for a resource conforming to | value to be used in the CoRE Link Format for a resource conforming to | |||
that interface. When this value appears in the if= attribute of a | that interface. When this value appears in the if= attribute of a | |||
link, the resource MUST support the corresponding REST interface | link, the resource MUST support the corresponding REST interface | |||
described in this section. The resource MAY support additional | described in this section. The resource MAY support additional | |||
functionality, which is out of scope for this document. Although | functionality, which is out of scope for this document. Although | |||
these interface descriptions are intended to be used with the CoRE | these interface descriptions are intended to be used with the CoRE | |||
Link Format, they are applicable for use in any REST interface | Link Format, they are applicable for use in any REST interface | |||
definition. | definition. | |||
skipping to change at page 11, line 8 ¶ | skipping to change at page 11, line 8 ¶ | |||
</a/1/led>;rt="simple.act.led";if="core.a", | </a/1/led>;rt="simple.act.led";if="core.a", | |||
</a/2/led>;rt="simple.act.led";if="core.a", | </a/2/led>;rt="simple.act.led";if="core.a", | |||
</d/>;rt="simple.dev";if="core.ll", | </d/>;rt="simple.dev";if="core.ll", | |||
</l/>;if="core.lb", | </l/>;if="core.lb", | |||
Figure 1: Binding Interface Example | Figure 1: Binding Interface Example | |||
4.1. Link List | 4.1. Link List | |||
The Link List interface is used to retrieve (GET) a list of resources | The Link List interface is used to retrieve (GET) a list of resources | |||
on a web server. The GET request SHOULD contain an Accept option | on an origin server. The GET request SHOULD contain an Accept option | |||
with the application/link-format content format. However if the | with the application/link-format content format. However if the | |||
resource does not support any other form of content-format the Accept | resource does not support any other form of content-format the Accept | |||
option MAY be elided. | option MAY be elided. | |||
Note: The use of an Accept option with application/link-format is | Note: The use of an Accept option with application/link-format is | |||
recommended even though it is not strictly needed for the link list | recommended even though it is not strictly needed for the link list | |||
interface because this interface is extended by the batch and linked | interface because this interface is extended by the batch and linked | |||
batch interfaces where different content-formats are possible. | batch interfaces where different content-formats are possible. | |||
The request returns a list of URI references with absolute paths to | The request returns a list of URI references with absolute paths to | |||
the resources as defined in CoRE Link Format. This interface is | the resources as defined in CoRE Link Format. This interface is | |||
typically used with a parent resource to enumerate sub-resources but | typically used with a parent resource to enumerate sub-resources but | |||
may be used to reference any resource on a web server. | may be used to reference any resource on an origin server. | |||
Link List is the base interface to provide gradual reveal of | Link List is the base interface to provide gradual reveal of | |||
resources on a CoRE web server, hence the root resource of a Function | resources on a CoRE origin server. Hence the root resource of a | |||
Set SHOULD implement this interface or an extension of this | Function Set SHOULD implement this interface or an extension of this | |||
interface. | interface. | |||
The following example interacts with a Link List /d containing | The following example interacts with a Link List /d containing | |||
Parameter sub-resources /d/name, /d/model. | Parameter sub-resources /d/name, /d/model. | |||
Req: GET /d/ (Accept:application/link-format) | Req: GET /d/ (Accept:application/link-format) | |||
Res: 2.05 Content (application/link-format) | Res: 2.05 Content (application/link-format) | |||
</d/name>;rt="simple.dev.n";if="core.p", | </d/name>;rt="simple.dev.n";if="core.p", | |||
</d/model>;rt="simple.dev.mdl";if="core.rp" | </d/model>;rt="simple.dev.mdl";if="core.rp" | |||
4.2. Batch | 4.2. Batch | |||
The Batch interface is used to manipulate a collection of sub- | The Batch interface is used to manipulate a collection of sub- | |||
resources at the same time. The Batch interface description supports | resources at the same time. The Batch interface description supports | |||
the same methods as its sub-resources, and can be used to read (GET), | the same methods as its sub-resources, and can be used to read (GET), | |||
update (PUT) or apply (POST) the values of those sub-resource with a | update (PUT) or apply (POST) the values of those sub-resource with a | |||
single resource representation. The sub-resources of a Batch MAY be | single resource representation. The sub-resources of a Batch MAY be | |||
heterogeneous, a method used on the Batch only applies to sub- | heterogeneous. Hence, a method used on the Batch only applies to | |||
resources that support it. For example Sensor interfaces do not | sub-resources that support it. For example Sensor interfaces do not | |||
support PUT, and thus a PUT request to a Sensor member of that Batch | support PUT, and thus a PUT request to a Sensor member of that Batch | |||
would be ignored. A batch requires the use of SenML Media types in | would be ignored. A batch requires the use of SenML Media types in | |||
order to support multiple sub-resources. | order to support multiple sub-resources. | |||
In addition, the Batch interface is an extension of the Link List | In addition, the Batch interface is an extension of the Link List | |||
interface and in consequence MUST support the same methods. For | interface and in consequence MUST support the same methods. For | |||
example: a GET with an Accept:application/link-format on a resource | example, a GET with an Accept:application/link-format on a resource | |||
utilizing the batch interface will return the sub-resource links. | utilizing the batch interface will return the sub-resource links. | |||
The following example interacts with a Batch /s/ with Sensor sub- | The following example interacts with a Batch /s/ with Sensor sub- | |||
resources /s/light, /s/temp and /s/humidity. | resources /s/light, /s/temp and /s/humidity. | |||
Req: GET /s/ | Req: GET /s/ | |||
Res: 2.05 Content (application/senml+json) | Res: 2.05 Content (application/senml+json) | |||
{"e":[ | {"e":[ | |||
{ "n": "light", "v": 123, "u": "lx" }, | { "n": "light", "v": 123, "u": "lx" }, | |||
{ "n": "temp", "v": 27.2, "u": "degC" }, | { "n": "temp", "v": 27.2, "u": "degC" }, | |||
{ "n": "humidity", "v": 80, "u": "%RH" }], | { "n": "humidity", "v": 80, "u": "%RH" }], | |||
} | } | |||
4.3. Linked Batch | 4.3. Linked Batch | |||
The Linked Batch interface is an extension of the Batch interface. | The Linked Batch interface is an extension of the Batch interface. | |||
Contrary to the basic Batch which is a collection statically defined | Contrary to the basic Batch which is a collection statically defined | |||
by the web server, a Linked Batch is dynamically controlled by a web | by the origin server, a Linked Batch is dynamically controlled by a | |||
client. A Linked Batch resource has no sub-resources. Instead the | client. A Linked Batch resource has no sub-resources. Instead the | |||
resources forming the batch are referenced using Web Linking | resources forming the batch are referenced using Web Linking | |||
[RFC5988] and the CoRE Link Format [RFC6690]. A request with a POST | [RFC8288] and the CoRE Link Format [RFC6690]. A request with a POST | |||
method and a content format of application/link-format simply appends | method and a content format of application/link-format simply appends | |||
new resource links to the collection. The links in the payload MUST | new resource links to the collection. The links in the payload MUST | |||
reference a resource on the web server with an absolute path. A | reference a resource on the origin server with an absolute path. A | |||
DELETE request removes the entire collection. All other requests | DELETE request removes the entire collection. All other requests | |||
available for a basic Batch are still valid for a Linked Batch. | available for a basic Batch are still valid for a Linked Batch. | |||
The following example interacts with a Linked Batch /l/ and creates a | The following example interacts with a Linked Batch /l/ and creates a | |||
collection containing /s/light, /s/temp and /s/humidity in 2 steps. | collection containing /s/light, /s/temp and /s/humidity in 2 steps. | |||
Req: POST /l/ (Content-Format: application/link-format) | Req: POST /l/ (Content-Format: application/link-format) | |||
</s/light>,</s/temp> | </s/light>,</s/temp> | |||
Res: 2.04 Changed | Res: 2.04 Changed | |||
skipping to change at page 15, line 49 ¶ | skipping to change at page 15, line 49 ¶ | |||
6. IANA Considerations | 6. IANA Considerations | |||
This document registers the following CoRE Interface Description | This document registers the following CoRE Interface Description | |||
(if=) Link Target Attribute Values. | (if=) Link Target Attribute Values. | |||
6.1. Link List | 6.1. Link List | |||
Attribute Value: core.ll | Attribute Value: core.ll | |||
Description: The Link List interface is used to retrieve a list of | Description: The Link List interface is used to retrieve a list of | |||
resources on a web server. | resources on an origin server. | |||
Reference: This document. Note to RFC Editor - please insert the | Reference: This document. Note to RFC Editor - please insert the | |||
appropriate RFC reference. | appropriate RFC reference. | |||
Notes: None | Notes: None | |||
6.2. Batch | 6.2. Batch | |||
Attribute Value: core.b | Attribute Value: core.b | |||
skipping to change at page 16, line 28 ¶ | skipping to change at page 16, line 28 ¶ | |||
appropriate RFC reference. | appropriate RFC reference. | |||
Notes: None | Notes: None | |||
6.3. Linked Batch | 6.3. Linked Batch | |||
Attribute Value: core.lb | Attribute Value: core.lb | |||
Description: The Linked Batch interface is an extension of the Batch | Description: The Linked Batch interface is an extension of the Batch | |||
interface. Contrary to the basic Batch which is a collection | interface. Contrary to the basic Batch which is a collection | |||
statically defined by the web server, a Linked Batch is | statically defined by the origin server, a Linked Batch is | |||
dynamically controlled by a web client. | dynamically controlled by a client. | |||
Reference: This document. Note to RFC Editor - please insert the | Reference: This document. Note to RFC Editor - please insert the | |||
appropriate RFC reference. | appropriate RFC reference. | |||
Notes: None | Notes: None | |||
6.4. Sensor | 6.4. Sensor | |||
Attribute Value: core.s | Attribute Value: core.s | |||
skipping to change at page 18, line 7 ¶ | skipping to change at page 18, line 7 ¶ | |||
Acknowledgement is given to colleagues from the SENSEI project who | Acknowledgement is given to colleagues from the SENSEI project who | |||
were critical in the initial development of the well-known REST | were critical in the initial development of the well-known REST | |||
interface concept, to members of the IPSO Alliance where further | interface concept, to members of the IPSO Alliance where further | |||
requirements for interface descriptions have been discussed, and to | requirements for interface descriptions have been discussed, and to | |||
Szymon Sasin, Cedric Chauvenet, Daniel Gavelle and Carsten Bormann | Szymon Sasin, Cedric Chauvenet, Daniel Gavelle and Carsten Bormann | |||
who have provided useful discussion and input to the concepts in this | who have provided useful discussion and input to the concepts in this | |||
document. | document. | |||
8. Changelog | 8. Changelog | |||
Changes from -10 to 09: | Changes from -10 to 11: | |||
o Section 1: Amendments to remove discussing properties. | o New Section 3.4 on Link Embedding | |||
o | o Removed disused "Service discovery" terminology | |||
o Removed wording referring to discontinued function set concept | ||||
Changes from -09 to -10: | ||||
o Section 1: Amendments to remove discussing properties. | ||||
o New author and editor added. | o New author and editor added. | |||
Changes from -08 to 09: | Changes from -08 to -09: | |||
o Section 3.6: Modified to indicate that the entire collection | o Section 3.6: Modified to indicate that the entire collection | |||
resource is returned. | resource is returned. | |||
o General: Added editor's note with open issues. | o General: Added editor's note with open issues. | |||
Changes from -07 to 08: | Changes from -07 to -08: | |||
o Section 3.3: Modified Accepts to Accept header option. | o Section 3.3: Modified Accepts to Accept header option. | |||
o Addressed the editor's note in Section 4.1 to clarify the use of | o Addressed the editor's note in Section 4.1 to clarify the use of | |||
the Accept option. | the Accept option. | |||
Changes from -06 to 07: | Changes from -06 to -07: | |||
o Corrected Figure 1 sub-resource names e.g. tmp to temp and hum to | o Corrected Figure 1 sub-resource names e.g. tmp to temp and hum to | |||
humidity. | humidity. | |||
o Addressed the editor's note in Section 4.2. | o Addressed the editor's note in Section 4.2. | |||
o Removed section on function sets and profiles as agreed to at the | o Removed section on function sets and profiles as agreed to at the | |||
IETF#97. | IETF#97. | |||
Changes from -05 to -06: | Changes from -05 to -06: | |||
skipping to change at page 21, line 14 ¶ | skipping to change at page 21, line 19 ¶ | |||
o Improved the WADL interface definition. | o Improved the WADL interface definition. | |||
o Added a simple profile example. | o Added a simple profile example. | |||
9. References | 9. References | |||
9.1. Normative References | 9.1. Normative References | |||
[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, DOI 10.17487/ | Requirement Levels", BCP 14, RFC 2119, | |||
RFC2119, March 1997, <https://www.rfc-editor.org/info/ | DOI 10.17487/RFC2119, March 1997, | |||
rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
[RFC5988] Nottingham, M., "Web Linking", RFC 5988, DOI 10.17487/ | ||||
RFC5988, October 2010, <https://www.rfc-editor.org/info/ | ||||
rfc5988>. | ||||
[RFC6690] Shelby, Z., "Constrained RESTful Environments (CoRE) Link | [RFC6690] Shelby, Z., "Constrained RESTful Environments (CoRE) Link | |||
Format", RFC 6690, DOI 10.17487/RFC6690, August 2012, | Format", RFC 6690, DOI 10.17487/RFC6690, August 2012, | |||
<https://www.rfc-editor.org/info/rfc6690>. | <https://www.rfc-editor.org/info/rfc6690>. | |||
[RFC8288] Nottingham, M., "Web Linking", RFC 8288, | ||||
DOI 10.17487/RFC8288, October 2017, | ||||
<https://www.rfc-editor.org/info/rfc8288>. | ||||
9.2. Informative References | 9.2. Informative References | |||
[I-D.ietf-core-dynlink] | [I-D.ietf-core-dynlink] | |||
Shelby, Z., Vial, M., Koster, M., and C. Groves, "Dynamic | Shelby, Z., Koster, M., Groves, C., Zhu, J., and B. | |||
Resource Linking for Constrained RESTful Environments", | Silverajan, "Dynamic Resource Linking for Constrained | |||
draft-ietf-core-dynlink-03 (work in progress), March 2017. | RESTful Environments", draft-ietf-core-dynlink-04 (work in | |||
progress), September 2017. | ||||
[I-D.ietf-core-resource-directory] | [I-D.ietf-core-resource-directory] | |||
Shelby, Z., Koster, M., Bormann, C., Stok, P., and C. | Shelby, Z., Koster, M., Bormann, C., Stok, P., and C. | |||
Amsuess, "CoRE Resource Directory", draft-ietf-core- | Amsuess, "CoRE Resource Directory", draft-ietf-core- | |||
resource-directory-11 (work in progress), July 2017. | resource-directory-13 (work in progress), March 2018. | |||
[I-D.ietf-core-senml] | [I-D.ietf-core-senml] | |||
Jennings, C., Shelby, Z., Arkko, J., Keranen, A., and C. | Jennings, C., Shelby, Z., Arkko, J., Keranen, A., and C. | |||
Bormann, "Media Types for Sensor Measurement Lists | Bormann, "Media Types for Sensor Measurement Lists | |||
(SenML)", draft-ietf-core-senml-10 (work in progress), | (SenML)", draft-ietf-core-senml-13 (work in progress), | |||
July 2017. | March 2018. | |||
[OIC-Core] | [OIC-Core] | |||
"OIC Resource Type Specification v1.1.0", 2016, | "OIC Resource Type Specification v1.1.0", 2016, | |||
<https://openconnectivity.org/resources/specifications>. | <https://openconnectivity.org/resources/specifications>. | |||
[OIC-SmartHome] | [OIC-SmartHome] | |||
"OIC Smart Home Device Specification v1.1.0", 2016, | "OIC Smart Home Device Specification v1.1.0", 2016, | |||
<https://openconnectivity.org/resources/specifications>. | <https://openconnectivity.org/resources/specifications>. | |||
[OMA-TS-LWM2M] | [OMA-TS-LWM2M] | |||
"Lightweight Machine to Machine Technical Specification", | "Lightweight Machine to Machine Technical Specification", | |||
2016, <http://technical.openmobilealliance.org/Technical/ | 2016, <http://technical.openmobilealliance.org/Technical/ | |||
technical-information/release-program/current-releases/ | technical-information/release-program/current-releases/ | |||
oma-lightweightm2m-v1-0>. | oma-lightweightm2m-v1-0>. | |||
[oneM2MTS0008] | ||||
"TS 0008 v1.3.2 CoAP Protocol Binding", 2016, | ||||
<http://www.onem2m.org/technical/published-documents>. | ||||
[oneM2MTS0023] | ||||
"TS 0023 v2.0.0 Home Appliances Information Model and | ||||
Mapping", 2016, | ||||
<http://www.onem2m.org/technical/published-documents>. | ||||
[RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform | [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform | |||
Resource Identifier (URI): Generic Syntax", STD 66, RFC | Resource Identifier (URI): Generic Syntax", STD 66, | |||
3986, DOI 10.17487/RFC3986, January 2005, | RFC 3986, DOI 10.17487/RFC3986, January 2005, | |||
<https://www.rfc-editor.org/info/rfc3986>. | <https://www.rfc-editor.org/info/rfc3986>. | |||
[RFC6573] Amundsen, M., "The Item and Collection Link Relations", | [RFC6573] Amundsen, M., "The Item and Collection Link Relations", | |||
RFC 6573, DOI 10.17487/RFC6573, April 2012, | RFC 6573, DOI 10.17487/RFC6573, April 2012, | |||
<https://www.rfc-editor.org/info/rfc6573>. | <https://www.rfc-editor.org/info/rfc6573>. | |||
[RFC7230] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer | [RFC7230] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer | |||
Protocol (HTTP/1.1): Message Syntax and Routing", RFC | Protocol (HTTP/1.1): Message Syntax and Routing", | |||
7230, DOI 10.17487/RFC7230, June 2014, <https://www.rfc- | RFC 7230, DOI 10.17487/RFC7230, June 2014, | |||
editor.org/info/rfc7230>. | <https://www.rfc-editor.org/info/rfc7230>. | |||
[RFC7252] Shelby, Z., Hartke, K., and C. Bormann, "The Constrained | [RFC7252] Shelby, Z., Hartke, K., and C. Bormann, "The Constrained | |||
Application Protocol (CoAP)", RFC 7252, DOI 10.17487/ | Application Protocol (CoAP)", RFC 7252, | |||
RFC7252, June 2014, <https://www.rfc-editor.org/info/ | DOI 10.17487/RFC7252, June 2014, | |||
rfc7252>. | <https://www.rfc-editor.org/info/rfc7252>. | |||
[RFC7396] Hoffman, P. and J. Snell, "JSON Merge Patch", RFC 7396, | [RFC7396] Hoffman, P. and J. Snell, "JSON Merge Patch", RFC 7396, | |||
DOI 10.17487/RFC7396, October 2014, <https://www.rfc- | DOI 10.17487/RFC7396, October 2014, | |||
editor.org/info/rfc7396>. | <https://www.rfc-editor.org/info/rfc7396>. | |||
[oneM2MTS0008] | ||||
"TS 0008 v1.3.2 CoAP Protocol Binding", 2016, | ||||
<http://www.onem2m.org/technical/published-documents>. | ||||
[oneM2MTS0023] | ||||
"TS 0023 v2.0.0 Home Appliances Information Model and | ||||
Mapping", 2016, | ||||
<http://www.onem2m.org/technical/published-documents>. | ||||
Appendix A. Current Usage of Interfaces and Function Sets | Appendix A. Current Usage of Interfaces and Function Sets | |||
Editor's note: This appendix will be removed. It is only included | Editor's note: This appendix will be removed. It is only included | |||
for information. | for information. | |||
This appendix analyses the current landscape with regards the | This appendix analyses the current landscape with regards the | |||
definition and use of collections, interfaces and function sets/ | definition and use of collections, interfaces and function sets/ | |||
profiles. This should be considered when considering the scope of | profiles. This should be considered when considering the scope of | |||
this document. | this document. | |||
End of changes. 60 change blocks. | ||||
135 lines changed or deleted | 142 lines changed or added | |||
This html diff was produced by rfcdiff 1.46. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |