Draft: draft-ietf-core-dynlink

Commentary: Binding Table now defined with instead of with support for GET and PUT . Examples updated to reflect GET and PUT instead of DELETE . Added a statement indicating PATCH support would be investigated IANA considerations updated for 
 Merging after email discussion with 
 I created pull request with a rewrite of this section . Please review it and see if that fits what we wanted to do for the Binding Table . The amendments in the pull request text are copy - pasted below : Binding Table The Binding Table is a special resource that describes the bindings on an endpoint . An endpoint offering a representation of the Binding Table resource SHOULD indicate its presence and enable its discovery by advertising a link at " /.well - known / core " [ RFC6690 ] . If so , the Binding Table resource MUST be discoverable by using the Resource Type ( rt ) '' . The Methods column defines the REST methods supported by the Binding Table , which are described in more detail below . + ---------------+----------+----------+----------------+ + ---------------+----------+----------+----------------+ + ---------------+----------+----------+----------------+ Table 4 : Binding Table Description The REST methods GET and PUT are used to manipulate a Binding Table . A GET request simply returns the current state of a Binding Table . A request with a PUT method and a content format of application / link- format is used to clear the bindings to the table or replaces its entire contents . All links in the payload of a PUT rquest MUST have a relation type " boundto " . ( Editor 's Note : Usage of the PATCH method for fine - grained addition and removal of individual bindings is under study . ) The following example shows requests for discovering , retrieving and replacing bindings in a binding table . Req : GET /.well- ( application / link - format ) Res : 2.05 Content ( application / link - format ) < /bnd/;;ct=40 Req : GET /bnd/ Res : 2.05 Content ( application / link - format ) ; rel = boundto;bind = obs;anchor=/a / fan,;bind="obs " , ; rel = boundto;bind = obs;anchor=/a / light;bind="obs " Req : PUT /bnd/ (    : application / link - format ) ; rel="boundto";anchor="/a / light";bind="obs";pmin="10";pmax="60 "  : 2.04 Changed Req : GET /bnd/ Res : 2.05 Content ( application / link - format ) ; rel="boundto";anchor="/a / light";bind="obs";pmin="10";pmax="60 " Figure 2 : Binding Table Example IANA Considerations Resource Type value '' This specification registers a new Resource Type Link Target Attribute '' in the Resource Type ( rt= ) registry established as per [ RFC6690 ] .        5 . This attribute value is used to discover the resource representing a binding table , which describes the link bindings between source and destination resources for the purposes of synchronizing their content . Reference : This specification . Note to RFC editor : please insert the RFC of this specification . Notes : None 
 Merging after email discussion with
The Binding table is a special resource that gives access to the
bindings on a endpoint.  This section defines a REST interface for
Binding table resources.  The Binding table resource MUST support the
Binding interface defined below.  The interface supports the link-
format type.
The if= column defines the Interface Description (if=) attribute
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
link, the resource MUST support the corresponding REST interface
described in this section.  The resource MAY support additional
functionality, which is out of scope for this specification.
Although this interface description is intended to be used with the
CoRE Link Format, it is applicable for use in any REST interface
definition.
The Methods column defines the REST methods supported by the
interface, which are described in more detail below.
The Binding interface is used to manipulate a binding table.  A
request with a POST method and a content format of application/link-
format simply appends new bindings to the table.  All links in the
payload MUST have a relation type "boundto".  A GET request simply
returns the current state of a binding table whereas a DELETE request
empties the table.  Individual entries may be deleted from the table
by specifying the resource path in a DELETE request.
The following example shows requests for adding, retrieving and
deleting bindings in a binding table.
The Binding Table is a special resource that describes the bindings
on an endpoint.  An endpoint offering a representation of the Binding
Table resource SHOULD indicate its presence and enable its discovery
by advertising a link at "/.well-known/core" RFC6690.  If so, the
Binding Table resource MUST be discoverable by using the Resource
Type (rt) 'core.bnd'.
The Methods column defines the REST methods supported by the Binding
Table, which are described in more detail below.
The REST methods GET and PUT are used to manipulate a Binding Table.
A GET request simply returns the current state of a Binding Table.  A
request with a PUT method and a content format of application/link-
format is used to clear the bindings to the table or replaces its
entire contents.  All links in the payload of a PUT rquest MUST have
a relation type "boundto".
The following example shows requests for discovering, retrieving and
replacing bindings in a binding table.
The specification registers the "binding" CoRE interface description
link target attribute value as per RFC6690.
Description: The binding interface is used to manipulate a binding
table which describes the link bindings between source and
destination resources for the purposes of synchronizing their
content.
This specification registers a new Resource Type Link Target
Attribute 'core.bnd' in the Resource Type (rt=) registry established
as per RFC6690.
Description: See binding_table.  This attribute value is used to
discover the resource representing a binding table, which describes
the link bindings between source and destination resources for the
purposes of synchronizing their content.