Version: 29 Nov 2023
Editors:
Michael McCool (Intel)
Ege Korkan (Siemens)
Fady Salama (Siemens / Technical University of Munich)
Copyright © 2017-2023 World Wide Web Consortium. W3C® liability, trademark and permissive document license rules apply.
The Web of Things (WoT) Thing Description 1.1 document was published as a Candidate Recommendation Snapshot on 19 January 2023 and a Proposed Recommendation on 11 July 2023.
This document summarizes the results from the Web of Things (WoT) Thing Description 1.1 implementer reports received and describes the process that the Web of Things (WoT) Working Group followed in preparing this Implementation Report (IR).
Although results were generated with a combination of automated and manual tests, the automated tests were only meant to provide assistance to implementers in preparing their individual implementation test reports.
During the CR period, the Working Group performed the following activities:
Implementers were invited to contribute to the assessment of the Web of Things (WoT) Thing Description 1.1 Candidate Recommendation by submitting implementer reports describing the coverage of their implementations with respect to the test assertions outlined in the tables below.
Implementer reports were collected through the W3C WoT Interest Group's
PlugFest activity and collected in the GitHub
repository
https://github.com/w3c/wot-testing
under data/input_2022/TD
.
Comments on this document, or requests made for further information were posted to the Working Group's public mailing list wot-wg@w3.org (archive) and as issues on the GitHub repository https://github.com/w3c/wot-thing-description.
The Web of Things (WoT) Working Group established the following entrance criteria for the Proposed Recommendation phase:
In order to be included in the PR all features, whether optional or required, needed to have received at least two implementations. At the time of publication of this report all assertions have met this requirement.
Feature status is in practice indicated by RFC 2119 assertions associated with the feature. Features defined using any assertions containing the words MUST are considered required. Features defined using MAY and SHOULD assertions are considered optional.
Feature utility is indicated indirectly by the number of implementations supporting each feature. In general, features with fewer implementations will have a narrower scope, but may still be important for specific use cases.
pass
, fail
, or
not-impl
(not implemented).
This implementation Report will not cover:
Although we did not formally test interoperability, we required two or more independent implementations for all features in the specification and tested general interoperability at plugfest events.
This section contains descriptions of each of the implementations of the WoT Thing Description 1.1 specification from all organizations that submitted implementer reports. Each implementation represents a working system that either exposes (provides) a WoT Thing Description, consumes WoT Thing Descriptions, or both. Implementations that expose a network interface described by a Thing Description will be referred to as "servers". Implementations that consume Thing Descriptions will be referred to as "clients". Note that these terms will be used with these specific definitions in the following regardless of which device initiates network requests. Normally the client initiates requests and the server responds. However, in some protocols or sub-protocols that support push notifications (such as webhooks or MQTT) the usual relationship of initiator/responder may be reversed. In some cases a given implementation may be used for multiple Things and a single Thing may also act as both client and server on multiple interfaces.
We only count systems with mostly independent code bases as distinct implementations. There are however some cases (documented in the following) where implementations shared components but were still considered substantially independent implementations. In cases where a substantial component was shared across implementations the features supported by that component were only counted once. We did permit the same implementer to report on multiple different implementations as long as the code bases were distinct.
All test results from the first version of this specification were reused to check for backward compatibility between this version and the older specification. Please see the implementation report for the previous version of this specification for additional implementation descriptions.
The library dart_wot
is a WoT Scripting API implementation written in the Dart programming
language, aimed at bringing Web of Things support to the Dart/Flutter ecosystem.
It supports consuming and discovering TDs, providing protocol bindings for HTTP, CoAP, and MQTT. Its supported
security mechanisms include DTLS (CoAP), TLS (HTTP, MQTT), Basic and Bearer authentication (HTTP), PSK (CoAP),
and username/password authentication (MQTT). Furthermore, dart_wot
's CoAP binding offers
experimental support for ACE-OAuth (RFC 9200), an authorization and authentication framework for constrained
environments.
Usage: dart_wot
can be included in Dart and Flutter projects as a dependency. In
Flutter apps, all platforms are supported, with macOS and iOS (where CoAPS support is limited) and Web
browsers (where CoAP is not supported at all) as partial exceptions.
Public Repository: https://github.com/namib-project/dart_wot
pub.dev Entry: https://pub.dev/packages/dart_wot
Contributing Member Organizations: Invited Experts
Eclipse Ditto offers a Java Module to use TDs and TMs inside Java environments with concepts native to Java, e.g. providing a builder API for creating new TM/TD instances and rendering those to JSON strings and vice versa.
Usage: Library
Public Repository: https://github.com/eclipse/ditto/tree/master/wot/model
Contributing Member Organizations: Bosch.IO
A service that provides APIs for managing digital twins and interacting with the abstracted devices. Fetches linked Thing Models of digital twins and provides instance specific Thing Descriptions for them.
Usage: Service
Public Repository: https://github.com/eclipse/ditto
Website: https://www.eclipse.org/ditto/basic-wot-integration.html
Contributing Member Organizations: Bosch.IO
This is an intermediary that connects ECHONET Lite devices into the W3C WoT and allows WoT clients to interact with them via provided TDs.
This intermediary extends the node-wot library.
The Eclipse EdiTDor implementation is a web application for simply designing W3C Thing Descriptions and Thing Models.
Usage: Web Application
Public Repository: https://github.com/eclipse/editdor Website: https://eclipse.github.io/editdor/
Contributing Member Organizations: Siemens AG, Bosch.IO
This TM focused implementation is built upon the Fischertechnik Factory Simulator. The TMs are written by hand, together with the relationships. The TMs are then consumed by Eclipse Thingweb node-wot and is the reason why only TMs are submitted instead of TMs and the corresponding TDs.
Usage: To be consumed by tools like Eclipse Thingweb node-wot
Contributing Member Organizations:Siemens AG and TU Munich (not member)
The Fujitsu ledbulb is a Wi-Fi controllable LED bulb that can be changed brightness and color. In addition, the light can be gradually turned off or turned on at a specified time.
Fujitsu's proxy creates a shadow of the device in the proxy, allowing consumers to control the actual device by accessing the shadow. Even if the actual device does not have an authentication mechanism, the proxy provides an authentication mechanism instead to enable secure access. Another advantage is that even if multiple devices have different protocol bindings, they can be accessed using one protocol. It also has a directory for discovering networked devices, creating their shadows, and registering them.
The proxy is implemented in Java.
This proxy is provided as a product in Japan. The product page is below (Japanese only). https://www.fujitsu.com/jp/products/network/carrier-router/wideareanetwork/virtuora-mx/
The Fujitsu sensor is a sensor with temperature, humidity, and air pressure, and can be communicated through Wi-Fi to get data. This sensor was used to collect environmental data in agriculture and factories.
This is an example of a Thing implemented on a microcontroller. It can exporting the Thing's sensor reading via HTTP REST API, and advertise its own Thing Description using DNS-SD/mDNS.
Node generator is command line tool to generate Node-RED node modules from several various sources including Thing Description of Web of Things. Using this tool, node developers can dramatically reduce their time to implement Node-RED node modules.
This is an example of a Thing implemented in Node-RED. It can turn on and off a LED connected to Raspberry Pi's GPIOs and notify changes in LED status. It can also advertise its own Thing Description using DNS-SD/mDNS.
This plugin uses wot-discovery functionality and make it easy to import Things into Node-RED flow editor. The plugin discovers Things connected on the local area network or registered in the Thing Description Directory, and converts them into functional blocks that can be used in Node-RED.
Two services based on a shared NodeJS codebase (not using node-wot):
Usage: Exposer
Contributing Member Organizations: Intel
This is a reverse proxy service that provides authentication (via various mechanisms indicated by the schemes indicated in the Thing Description) and encrypted transport (TLS) termination. The reverse proxy service was made accessible over a secure tunnel, and depending on the circumstances, can be run in the cloud, on a gateway computer, or locally on a device.
The secure endpoints provided by this service are not given in TDs for the service itself, but added to the TDs for the Things it services.
Usage: Intermediary
Contributing Member Organizations: Intel
A simple integration of WoT into Home Assistant. A service interrogates the metadata made available from Home Assistant on its external RESTful API. It then generates TDs for Home Assistant entities that can be accessed via this API and makes then available via a TD Directory service that follows the WoT Discovery specification. WoT Consumers can then access the TD Directory to find TDs for entities supported by Home Assistant and access these services using WoT affordance abstractions.
Usage: Directory and Exposer
Contributing Member Organizations: Intel
WoT device emulator (Android App) Hybrid TV Emulator AndroidTV App
The Eclipse node-wot implementation is a Node.js-based framework for WoT Servients. It features an implementation of the WoT Scripting API to both consume TDs to instantiate Consumed Things and produce Exposed Things that provide a TD. The Eclipse node-wot implementation supports several Protocol Bindings including HTTP, CoAP, WebSockets, MQTT, Firestore, OPC-UA, Modbus, M-Bus and NETCONF with corresponding security mechanisms such as DTLS (CoAP); TLS (HTTP, MQTT), Basic, Digest, and Bearer Token authentication (HTTP), PSK (CoAP), and username/password authentication (MQTT).
Usage: It can be included in bigger projects as a dependency, used as a Command Line Interface or as a browser library.
Public Repository: https://github.com/eclipse/thingweb.node-wot
Contributing Member Organizations: Siemens AG, Invited Experts
This implementation leverages the already developed Philips Hue devices. The TDs for them are written by hand and show the use of WoT for brownfield devices. Philips Hue uses API Key in the URI, which is one of the features of the TD 1.1.
Usage: The TDs of the devices can be consumed and interacted with.
Public Repository: https://github.com/tum-esi/wot-sys/tree/master/Devices/PhilipsHUE
Contributing Member Organizations:Siemens AG and TU Munich (non-member)
The Thing Description Playground implementation is a set of tools that allows one to validate TDs, as well to transform them into different representations such as OpenAPI and AsyncAPI or to manipulate TDs to add or remove default terms and values. It also allows to detect implemented assertions of the TD spec by looking at a TD, which is how the implementation report for the TD is generated.
Usage: It can be included in bigger projects as a dependency, used as a Command Line Interface or as a web application library.
Public Repository: https://github.com/thingweb/thingweb-playground Website: http://plugfest.thingweb.io/playground/
Contributing Member Organizations:Siemens AG
Custom implementation pattern using the Flask library for creating an HTTP server that exposes a TD. This pattern is used in many devices that have been developed. It is not a framework like Eclipse Thingweb node-wot, more like a copy-paste driven implementation pattern.
Usage: Command line
Public Repository: All that start with "flask" at https://github.com/tum-esi/wot-sys/tree/master/Devices
Contributing Member Organizations:Siemens AG and TU Munich (non-member)
sayWoT! is an industrial-grade implementation that allows integration of devices into Siemens software products like Asset Performance Suite, Desigo CC in a semantically-described and standardized way. sayWoT! is implemented in golang for optimal scalability and cross-architecture compatability.
Usage: Service in the cloud or on premise, Command Line Interface
Website: https://www.evosoft.com/en/digitalization-offering/saywot/
Contributing Member Organizations: Siemens AG
SparTDD is an implementation of the W3C Web of Things Thing Description Directory. There are two main components. The API of the TDD is written in Python using Flask. The data is stored in RDF in a Apache Jena Fuseki SPARQL endpoint. A demo can be found here.
Usage:Directory
Contributing Member Organizations:Siemens
This is an implementation of the W3C Web of Things (WoT) Thing Description Directory (TDD). This directory is designed to be lightweight and portable, enabling deployment on the edge. It uses a layered architecture to allows the addition of different storage backends to server high scalability needs.
The directory advertises itself in local networks using DNS-SD. It comes with the Things and Notification APIs, as well as JSONPath search support (non-normative). The directory performs fine-grained access control with the help of locally defined rules and an OpenID Connect server.
Usage: Directory
Public Repository: https://github.com/TinyIoT/thing-directory
Website: https://github.com/TinyIoT
Contributing Member Organizations: The parent fork has been developed as part of LinkSmart by Fraunhofer-Gesellschaft
The WoT Experimental is a collection of Thing implementations that aims to test different features of the TD specification such as WoT operations, Data Schema variations and API Key usage in Body.
Usage: Command line
Public Repository: https://github.com/egekorkan/wot-implementations
Contributing Member Organizations:Siemens AG
WoT Hive is an implementation of a W3C Web of Things directory. This implementation is compliant with the standard specification but aims at providing enriched features thanks to the usage of other W3C standards related to Semantic Web technologies.
Usage: Directory
Public Repository: https://github.com/oeg-upm/wot-hive
Website: https://github.com/oeg-upm/wot-hive
Contributing Member Organizations: Universidad Politécnica de Madrid
The Web of Things (WoT) Thing Description 1.1 specification includes features to support security. Functional aspects of assertions associated with security features are validated in the same fashion as other functional features.
The aim of this section is to summarize the assertions from the Web of Things (WoT) Thing Description 1.1 specification and summarize the results from the implementation reports received in the CR period. The tables in each section below lists all assertions derived from the Web of Things (WoT) Thing Description 1.1 specification. The results are broken into two parts: those for which automated testing has been implemented, and those for which it has not and manual testing and reporting was necessary.
The headers for these tables are described as follows:
pass
(P),
fail
(F), and not-impl
(N) status results in the individual implementer
reports.
In the case of assertions with multiple mutually exclusive options (for example, enumerated values) each of these options may be tested separately and the results combined. In this case the 'pass' and 'total' values reported are the minimum value of any of the more detailed tests, while the 'fail' and 'not implemented' values report the maximum value of any of these tests. Since minimum and maximum value may be drawn from different detailed tests, the sum of the 'pass', 'fail', and 'not implemented' cases may not equal the 'total'. Instead the total represents the number of implementations for which all options were tested. For such cases the "child" assertions have underscores in their names prior to each value tested and the table row is also rendered in a different color. Note that child assertions do not appear in the exact form shown in this report in the specification itself, so please refer to the parent assertion for context.
The following assertions have been validated by automated testing using the ThingWeb Playground AssertionTester.
ID | Category | Req | Context | Assertion | Parent | Results | |||
---|---|---|---|---|---|---|---|---|---|
P | F | N | T | ||||||
1: td-processor | Syntax | Y | (TD Processor) |
A TD Processor MUST satisfy the Class instantiation constraints on all Classes defined in 5.3.1 Core Vocabulary Definitions, 5.3.2 Data Schema Vocabulary Definitions, 5.3.3 Security Vocabulary Definitions, and 5.3.4 Hypermedia Controls Vocabulary Definitions. | 33 | 0 | 0 | 33 | |
2: td-vocab-at-context--Thing | Vocabulary | Y |
Thing |
@context: JSON-LD keyword to define short-hand names called terms that are used throughout a TD document. MUST be included. Type: anyURI or Array . | td-vocabulary |
24 | 0 | 9 | 33 |
3: td-vocab-at-type--Thing | Vocabulary | N |
Thing |
@type: JSON-LD keyword to label the object with semantic tags (or types). MAY be included. Type: string or Array of string . | td-vocabulary |
26 | 0 | 7 | 33 |
4: td-vocab-id--Thing | Vocabulary | N |
Thing |
id: Identifier of the Thing in form of a URI [RFC3986] (e.g., stable URI, temporary and mutable URI, URI with local IP address, URN, etc.). MAY be included. Type: anyURI . | td-vocabulary |
33 | 0 | 0 | 33 |
5: td-vocab-title--Thing | Vocabulary | Y |
Thing |
title: Provides a human-readable title (e.g., display a text for UI representation) based on a default language. MUST be included. Type: string . | td-vocabulary |
33 | 0 | 0 | 33 |
6: td-vocab-titles--Thing | Vocabulary | N |
Thing |
titles: Provides multi-language human-readable titles (e.g., display a text for UI representation in different languages). Also see MultiLanguage. MAY be included. Type: Map of MultiLanguage . | td-vocabulary |
7 | 0 | 26 | 33 |
7: td-vocab-description--Thing | Vocabulary | N |
Thing |
description: Provides additional (human-readable) information based on a default language. MAY be included. Type: string . | td-vocabulary |
27 | 0 | 6 | 33 |
8: td-vocab-descriptions--Thing | Vocabulary | N |
Thing |
descriptions: Can be used to support (human-readable) information in different languages. Also see MultiLanguage. MAY be included. Type: Map of MultiLanguage . | td-vocabulary |
6 | 0 | 27 | 33 |
9: td-vocab-version--Thing | Vocabulary | N |
Thing |
version: Provides version information. MAY be included. Type: VersionInfo . | td-vocabulary |
12 | 0 | 21 | 33 |
10: td-vocab-created--Thing | Vocabulary | N |
Thing |
created: Provides information when the TD instance was created. MAY be included. Type: dateTime . | td-vocabulary |
10 | 0 | 23 | 33 |
11: td-vocab-modified--Thing | Vocabulary | N |
Thing |
modified: Provides information when the TD instance was last modified. MAY be included. Type: dateTime . | td-vocabulary |
6 | 0 | 27 | 33 |
12: td-vocab-support--Thing | Vocabulary | N |
Thing |
support: Provides information about the TD maintainer as URI scheme (e.g., mailto [RFC6068], tel [RFC3966], https [RFC9112]). MAY be included. Type: anyURI . | td-vocabulary |
10 | 0 | 23 | 33 |
13: td-vocab-base--Thing | Vocabulary | N |
Thing |
base: Define the base URI that is used for all relative URI references throughout a TD document. In TD instances, all relative URIs are resolved relative to the base URI using the algorithm defined in [RFC3986]. base does not affect the URIs used in @context and the IRIs used within Linked Data [LINKED-DATA] graphs that are relevant when semantic processing is applied to TD instances. MAY be included. Type: anyURI . | td-vocabulary |
24 | 0 | 9 | 33 |
14: td-vocab-properties--Thing | Vocabulary | N |
Thing |
properties: All Property-based Interaction Affordances of the Thing. MAY be included. Type: Map of PropertyAffordance . | td-vocabulary |
33 | 0 | 0 | 33 |
15: td-vocab-actions--Thing | Vocabulary | N |
Thing |
actions: All Action-based Interaction Affordances of the Thing. MAY be included. Type: Map of ActionAffordance . | td-vocabulary |
23 | 0 | 10 | 33 |
16: td-vocab-events--Thing | Vocabulary | N |
Thing |
events: All Event-based Interaction Affordances of the Thing. MAY be included. Type: Map of EventAffordance . | td-vocabulary |
19 | 0 | 14 | 33 |
17: td-vocab-links--Thing | Vocabulary | N |
Thing |
links: Provides Web links to arbitrary resources that relate to the specified Thing Description. MAY be included. Type: Array of Link . | td-vocabulary |
11 | 0 | 22 | 33 |
18: td-vocab-forms--Thing | Vocabulary | N |
Thing |
forms: Set of form hypermedia controls that describe how an operation can be performed. Forms are serializations of Protocol Bindings. Thing level forms are used to describe endpoints for a group of interaction affordances. MAY be included. Type: Array of Form . | td-vocabulary |
14 | 0 | 19 | 33 |
19: td-vocab-security--Thing | Vocabulary | Y |
Thing |
security: Set of security definition names, chosen from those defined in securityDefinitions. These must all be satisfied for access to resources. MUST be included. Type: string or Array of string . | td-vocabulary |
33 | 0 | 0 | 33 |
20: td-vocab-securityDefinitions--Thing | Vocabulary | Y |
Thing |
securityDefinitions: Set of named security configurations (definitions only). Not actually applied unless names are used in a security name-value pair. MUST be included. Type: Map of SecurityScheme . | td-vocabulary |
33 | 0 | 0 | 33 |
21: td-vocab-profile--Thing | Vocabulary | N |
Thing |
profile: Indicates the WoT Profile mechanisms followed by this Thing Description and the corresponding Thing implementation. MAY be included. Type: anyURI or Array of anyURI . | td-vocabulary |
6 | 0 | 27 | 33 |
22: td-vocab-schemaDefinitions--Thing | Vocabulary | N |
Thing |
schemaDefinitions: Set of named data schemas. To be used in a schema name-value pair inside an AdditionalExpectedResponse object. MAY be included. Type: Map of DataSchema . | td-vocabulary |
3 | 0 | 30 | 33 |
23: td-vocab-uriVariables--Thing | Vocabulary | N |
Thing |
uriVariables: Define URI template variables according to [RFC6570] as collection based on DataSchema declarations. The Thing level uriVariables can be used in Thing level forms or in Interaction Affordances. The individual variables DataSchema cannot be an ObjectSchema or an ArraySchema since each variable needs to be serialized to a string inside the href upon the execution of the operation. If the same variable is both declared in Thing level uriVariables and in Interaction Affordance level, the Interaction Affordance level variable takes precedence. MAY be included. Type: Map of DataSchema . | td-vocabulary |
5 | 0 | 30 | 35 |
24: td-context-ns-thing-mandatory | Context | Y | (Context) |
The @context name-value pair MUST contain the anyURI https://www.w3.org/2022/wot/td/v1.1 in order to identify the document as a TD 1.1 which would allow Consumers to use the newly introduced terms. | 33 | 0 | 0 | 33 | |
25: td-context-ns-td10-namespace | Context | Y | (Context) |
When there are possibly TD 1.0 consumers the anyURI https://www.w3.org/2019/wot/td/v1 MUST be the first entry and the https://www.w3.org/2022/wot/td/v1.1 MUST be the second entry. | 23 | 0 | 12 | 35 | |
27: td-context-ns-thing-optional | Context | N | (Context) |
When @context is an Array, the anyURI https://www.w3.org/2022/wot/td/v1.1 MAY be followed by elements of type anyURI or type Map in any order, while it is RECOMMENDED to include only one Map with all the name-value pairs in the @context Array. | 24 | 0 | 9 | 33 | |
28: td-context-ns-thing-map-of-namespaces | Context | N | (Context) |
Maps contained in an @context Array MAY contain name-value pairs, where the value is a namespace identifier of type anyURI and the name a Term or prefix denoting that namespace. | 23 | 0 | 10 | 33 | |
29: td-context-default-language | Syntax | N |
Thing |
One Map contained in an @context Array SHOULD contain a name-value pair that defines the default language for the Thing Description, where the name is the Term @language and the value is a well-formed language tag as defined by [BCP47] (e.g., en, de-AT, gsw-CH, zh-Hans, zh-Hant-HK, sl-nedis). | 13 | 0 | 20 | 33 | |
32: td-op-for-thing | Syntax | Y |
Thing |
When the forms Array of a Thing instance contains Form instances, it MUST contain op member with the string values assigned to the name op, either directly or within an Array, MUST be one of the following operation types: readallproperties, writeallproperties, readmultipleproperties, writemultipleproperties, observeallproperties, unobserveallproperties, queryallactions, subscribeallevents, or unsubscribeallevents. | td-forms |
14 | 0 | 19 | 33 |
33: td-vocab-at-type--InteractionAffordance | Vocabulary | N |
InteractionAffordance |
@type: JSON-LD keyword to label the object with semantic tags (or types). MAY be included. Type: string or Array of string . | td-vocabulary |
15 | 0 | 18 | 33 |
34: td-vocab-title--InteractionAffordance | Vocabulary | N |
InteractionAffordance |
title: Provides a human-readable title (e.g., display a text for UI representation) based on a default language. MAY be included. Type: string . | td-vocabulary |
21 | 0 | 12 | 33 |
35: td-vocab-titles--InteractionAffordance | Vocabulary | N |
InteractionAffordance |
titles: Provides multi-language human-readable titles (e.g., display a text for UI representation in different languages). Also see MultiLanguage. MAY be included. Type: Map of MultiLanguage . | td-vocabulary |
4 | 0 | 29 | 33 |
36: td-vocab-description--InteractionAffordance | Vocabulary | N |
InteractionAffordance |
description: Provides additional (human-readable) information based on a default language. MAY be included. Type: string . | td-vocabulary |
29 | 0 | 4 | 33 |
37: td-vocab-descriptions--InteractionAffordance | Vocabulary | N |
InteractionAffordance |
descriptions: Can be used to support (human-readable) information in different languages. Also see MultiLanguage. MAY be included. Type: Map of MultiLanguage . | td-vocabulary |
6 | 0 | 27 | 33 |
38: td-vocab-forms--InteractionAffordance | Vocabulary | Y |
InteractionAffordance |
forms: Set of form hypermedia controls that describe how an operation can be performed. Forms are serializations of Protocol Bindings. The array cannot be empty. MUST be included. Type: Array of Form . | td-vocabulary |
31 | 0 | 2 | 33 |
39: td-vocab-uriVariables--InteractionAffordance | Vocabulary | N |
InteractionAffordance |
uriVariables: Define URI template variables according to [RFC6570] as collection based on DataSchema declarations. The individual variables DataSchema cannot be an ObjectSchema or an ArraySchema since each variable needs to be serialized to a string inside the href upon the execution of the operation. If the same variable is both declared in Thing level uriVariablesand in Interaction Affordance level, the Interaction Affordance level variable takes precedence. MAY be included. Type: Map of DataSchema . | td-vocabulary |
11 | 0 | 22 | 33 |
40: td-vocab-observable--PropertyAffordance | Vocabulary | N |
PropertyAffordance |
observable: A hint that indicates whether Servients hosting the Thing and Intermediaries should provide a Protocol Binding that supports the observeproperty and unobserveproperty operations for this Property. MAY be included. Type: boolean . | td-vocabulary |
16 | 0 | 17 | 33 |
41: td-op-for-property | Syntax | Y |
PropertyAffordance |
When a Form instance is within a PropertyAffordance instance, the value assigned to op MUST be one of readproperty, writeproperty, observeproperty, unobserveproperty or an Array containing a combination of these terms. | td-forms |
29 | 0 | 4 | 33 |
42: td-vocab-input--ActionAffordance | Vocabulary | N |
ActionAffordance |
input: Used to define the input data schema of the Action. MAY be included. Type: DataSchema . | td-vocabulary |
19 | 0 | 14 | 33 |
43: td-vocab-output--ActionAffordance | Vocabulary | N |
ActionAffordance |
output: Used to define the output data schema of the Action. MAY be included. Type: DataSchema . | td-vocabulary |
10 | 0 | 23 | 33 |
44: td-vocab-safe--ActionAffordance | Vocabulary | N |
ActionAffordance |
safe: Signals if the Action is safe (=true) or not. Used to signal if there is no internal state (cf. resource state) is changed when invoking an Action. In that case responses can be cached as example. MAY be included. Type: boolean . | td-vocabulary |
15 | 0 | 18 | 33 |
45: td-vocab-idempotent--ActionAffordance | Vocabulary | N |
ActionAffordance |
idempotent: Indicates whether the Action is idempotent (=true) or not. Informs whether the Action can be called repeatedly with the same result, if present, based on the same input. MAY be included. Type: boolean . | td-vocabulary |
17 | 0 | 16 | 33 |
46: td-vocab-synchronous--ActionAffordance | Vocabulary | N |
ActionAffordance |
synchronous: Indicates whether the action is synchronous (=true) or not. A synchronous action means that the response of action contains all the information about the result of the action and no further querying about the status of the action is needed. Lack of this keyword means that no claim on the synchronicity of the action can be made. MAY be included. Type: boolean . | td-vocabulary |
6 | 0 | 28 | 34 |
47: td-op-for-action | Syntax | Y |
ActionAffordance |
When a Form instance is within an ActionAffordance instance, the value assigned to op MUST either be invokeaction, queryaction, cancelaction or an Array containing a combination of these terms. | td-forms |
14 | 0 | 19 | 33 |
48: td-vocab-subscription--EventAffordance | Vocabulary | N |
EventAffordance |
subscription: Defines data that needs to be passed upon subscription, e.g., filters or message format for setting up Webhooks. MAY be included. Type: DataSchema . | td-vocabulary |
2 | 0 | 31 | 33 |
49: td-vocab-data--EventAffordance | Vocabulary | N |
EventAffordance |
data: Defines the data schema of the Event instance messages pushed by the Thing. MAY be included. Type: DataSchema . | td-vocabulary |
16 | 0 | 17 | 33 |
50: td-vocab-dataResponse--EventAffordance | Vocabulary | N |
EventAffordance |
dataResponse: Defines the data schema of the Event response messages sent by the consumer in a response to a data message. MAY be included. Type: DataSchema . | td-vocabulary |
16 | 0 | 17 | 33 |
51: td-vocab-cancellation--EventAffordance | Vocabulary | N |
EventAffordance |
cancellation: Defines any data that needs to be passed to cancel a subscription, e.g., a specific message to remove a Webhook. MAY be included. Type: DataSchema . | td-vocabulary |
2 | 0 | 31 | 33 |
52: td-op-for-event | Syntax | Y |
EventAffordance |
When a Form instance is within an EventAffordance instance, the value assigned to op MUST be either subscribeevent, unsubscribeevent, or both terms within an Array. | td-forms |
16 | 0 | 17 | 33 |
53: td-vocab-instance--VersionInfo | Vocabulary | Y |
VersionInfo |
instance: Provides a version indicator of this TD. MUST be included. Type: string . | td-vocabulary |
12 | 0 | 21 | 33 |
54: td-vocab-model--VersionInfo | Vocabulary | N |
VersionInfo |
model: Provides a version indicator of the underlying TM. MAY be included. Type: string . | td-vocabulary |
3 | 0 | 30 | 33 |
55: td-multilanguage-language-tag | Syntax | Y |
MultiLanguage |
Each name of the MultiLanguage Map MUST be a language tag as defined in [BCP47]. | 33 | 0 | 0 | 33 | |
56: td-multilanguage-value | Syntax | Y |
MultiLanguage |
Each value of the MultiLanguage Map MUST be of type string. | 9 | 0 | 24 | 33 | |
57: td-vocab-at-type--DataSchema | Vocabulary | N |
DataSchema |
@type: JSON-LD keyword to label the object with semantic tags (or types) MAY be included. Type: string or Array of string . | td-vocabulary |
14 | 0 | 19 | 33 |
58: td-vocab-title--DataSchema | Vocabulary | N |
DataSchema |
title: Provides a human-readable title (e.g., display a text for UI representation) based on a default language. MAY be included. Type: string . | td-vocabulary |
24 | 0 | 9 | 33 |
59: td-vocab-titles--DataSchema | Vocabulary | N |
DataSchema |
titles: Provides multi-language human-readable titles (e.g., display a text for UI representation in different languages). Also see MultiLanguage. MAY be included. Type: Map of MultiLanguage . | td-vocabulary |
6 | 0 | 27 | 33 |
60: td-vocab-description--DataSchema | Vocabulary | N |
DataSchema |
description: Provides additional (human-readable) information based on a default language. MAY be included. Type: string . | td-vocabulary |
29 | 0 | 4 | 33 |
61: td-vocab-descriptions--DataSchema | Vocabulary | N |
DataSchema |
descriptions: Can be used to support (human-readable) information in different languages. Also see MultiLanguage. MAY be included. Type: Map of MultiLanguage . | td-vocabulary |
7 | 0 | 26 | 33 |
62: td-vocab-const--DataSchema | Vocabulary | N |
DataSchema |
const: Provides a constant value. MAY be included. Type: any type. | td-vocabulary |
7 | 0 | 26 | 33 |
63: td-vocab-default--DataSchema | Vocabulary | N |
DataSchema |
default: Supply a default value. The value SHOULD validate against the data schema in which it resides. MAY be included. Type: any type. | td-vocabulary |
4 | 0 | 29 | 33 |
64: td-vocab-unit--DataSchema | Vocabulary | N |
DataSchema |
unit: Provides unit information that is used, e.g., in international science, engineering, and business. To preserve uniqueness, it is recommended that the value of the unit points to a semantic definition (also see Section Semantic Annotations). MAY be included. Type: string . | td-vocabulary |
14 | 0 | 19 | 33 |
65: td-vocab-oneOf--DataSchema | Vocabulary | N |
DataSchema |
oneOf: Used to ensure that the data is valid against one of the specified schemas in the array. This can be used to describe multiple input or output schemas. MAY be included. Type: Array of DataSchema . | td-vocabulary |
5 | 0 | 28 | 33 |
66: td-vocab-enum--DataSchema | Vocabulary | N |
DataSchema |
enum: Restricted set of values provided as an array. MAY be included. Type: Array of any type . | td-vocabulary |
13 | 0 | 20 | 33 |
67: td-vocab-readOnly--DataSchema | Vocabulary | N |
DataSchema |
readOnly: Boolean value that is a hint to indicate whether a property interaction / value is read only (=true) or not (=false). MAY be included. Type: boolean . | td-vocabulary |
24 | 0 | 9 | 33 |
68: td-vocab-writeOnly--DataSchema | Vocabulary | N |
DataSchema |
writeOnly: Boolean value that is a hint to indicate whether a property interaction / value is write only (=true) or not (=false). MAY be included. Type: boolean . | td-vocabulary |
14 | 0 | 19 | 33 |
69: td-vocab-format--DataSchema | Vocabulary | N |
DataSchema |
format: Allows validation based on a format pattern such as "date-time", "email", "uri", etc. (Also see below.) MAY be included. Type: string . | td-vocabulary |
8 | 0 | 25 | 33 |
70: td-vocab-type--DataSchema | Vocabulary | N |
DataSchema |
type: Assignment of JSON-based data types compatible with JSON Schema (one of boolean, integer, number, string, object, array, or null). MAY be included. Type: string (one of object, array, string, number, integer, boolean, or null) . | td-vocabulary |
4 | 1 | 29 | 34 |
70.01: td-vocab-type--DataSchema_array | Vocabulary | Y |
DataSchema |
type: Assignment of JSON-based data types MUST be compatible with JSON Schema (array). | td-vocabulary |
10 | 0 | 23 | 33 |
70.02: td-vocab-type--DataSchema_boolean | Vocabulary | Y |
DataSchema |
type: Assignment of JSON-based data types MUST be compatible with JSON Schema (boolean). | td-vocabulary |
18 | 0 | 15 | 33 |
70.03: td-vocab-type--DataSchema_integer | Vocabulary | Y |
DataSchema |
type: Assignment of JSON-based data types MUST be compatible with JSON Schema (integer). | td-vocabulary |
16 | 1 | 16 | 33 |
70.04: td-vocab-type--DataSchema_null | Vocabulary | Y |
DataSchema |
type: Assignment of JSON-based data types MUST be compatible with JSON Schema (null). | td-vocabulary |
4 | 0 | 29 | 33 |
70.05: td-vocab-type--DataSchema_number | Vocabulary | Y |
DataSchema |
type: Assignment of JSON-based data types MUST be compatible with JSON Schema (number). | td-vocabulary |
27 | 0 | 6 | 33 |
70.06: td-vocab-type--DataSchema_object | Vocabulary | Y |
DataSchema |
type: Assignment of JSON-based data types MUST be compatible with JSON Schema (object). | td-vocabulary |
26 | 0 | 7 | 33 |
70.07: td-vocab-type--DataSchema_string | Vocabulary | Y |
DataSchema |
type: Assignment of JSON-based data types MUST be compatible with JSON Schema (string). | td-vocabulary |
24 | 0 | 9 | 33 |
71: td-format-validation-known-values | Syntax | N |
DataSchema |
Servients MAY use the format value to perform additional validation accordingly. | td-data-schema |
8 | 0 | 25 | 33 |
73: td-vocab-items--ArraySchema | Vocabulary | N |
ArraySchema |
items: Used to define the characteristics of an array. MAY be included. Type: DataSchema or Array of DataSchema . | td-vocabulary |
9 | 0 | 24 | 33 |
74: td-vocab-minItems--ArraySchema | Vocabulary | N |
ArraySchema |
minItems: Defines the minimum number of items that have to be in the array. MAY be included. Type: unsignedInt . | td-vocabulary |
5 | 0 | 28 | 33 |
75: td-vocab-maxItems--ArraySchema | Vocabulary | N |
ArraySchema |
maxItems: Defines the maximum number of items that have to be in the array. MAY be included. Type: unsignedInt . | td-vocabulary |
5 | 0 | 28 | 33 |
76: td-vocab-minimum--NumberSchema | Vocabulary | N |
NumberSchema |
minimum: Specifies a minimum numeric value, representing an inclusive lower limit. Only applicable for associated number or integer types. MAY be included. Type: double . | td-vocabulary |
18 | 0 | 15 | 33 |
77: td-vocab-exclusiveMinimum--NumberSchema | Vocabulary | N |
NumberSchema |
exclusiveMinimum: Specifies a minimum numeric value, representing an exclusive lower limit. Only applicable for associated number or integer types. MAY be included. Type: double . | td-vocabulary |
2 | 0 | 31 | 33 |
78: td-vocab-maximum--NumberSchema | Vocabulary | N |
NumberSchema |
maximum: Specifies a maximum numeric value, representing an inclusive upper limit. Only applicable for associated number or integer types. MAY be included. Type: double . | td-vocabulary |
18 | 0 | 15 | 33 |
79: td-vocab-exclusiveMaximum--NumberSchema | Vocabulary | N |
NumberSchema |
exclusiveMaximum: Specifies a maximum numeric value, representing an exclusive upper limit. Only applicable for associated number or integer types. MAY be included. Type: double . | td-vocabulary |
2 | 0 | 31 | 33 |
80: td-vocab-multipleOf--NumberSchema | Vocabulary | N |
NumberSchema |
multipleOf: Specifies the multipleOf value number. The value must strictly greater than 0. Only applicable for associated number or integer types. MAY be included. Type: double . | td-vocabulary |
4 | 0 | 29 | 33 |
81: td-vocab-minimum--IntegerSchema | Vocabulary | N |
IntegerSchema |
minimum: Specifies a minimum numeric value, representing an inclusive lower limit. Only applicable for associated number or integer types. MAY be included. Type: integer . | td-vocabulary |
13 | 1 | 19 | 33 |
82: td-vocab-exclusiveMinimum--IntegerSchema | Vocabulary | N |
IntegerSchema |
exclusiveMinimum: Specifies a minimum numeric value, representing an exclusive lower limit. Only applicable for associated number or integer types. MAY be included. Type: integer . | td-vocabulary |
2 | 0 | 31 | 33 |
83: td-vocab-maximum--IntegerSchema | Vocabulary | N |
IntegerSchema |
maximum: Specifies a maximum numeric value, representing an inclusive upper limit. Only applicable for associated number or integer types. MAY be included. Type: integer . | td-vocabulary |
12 | 1 | 20 | 33 |
84: td-vocab-exclusiveMaximum--IntegerSchema | Vocabulary | N |
IntegerSchema |
exclusiveMaximum: Specifies a maximum numeric value, representing an exclusive upper limit. Only applicable for associated number or integer types. MAY be included. Type: integer . | td-vocabulary |
2 | 0 | 31 | 33 |
85: td-vocab-multipleOf--IntegerSchema | Vocabulary | N |
IntegerSchema |
multipleOf: Specifies the multipleOf value number. The value must strictly greater than 0. Only applicable for associated number or integer types. MAY be included. Type: integer . | td-vocabulary |
2 | 0 | 31 | 33 |
86: td-vocab-properties--ObjectSchema | Vocabulary | N |
ObjectSchema |
properties: Data schema nested definitions. MAY be included. Type: Map of DataSchema . | td-vocabulary |
23 | 0 | 10 | 33 |
87: td-vocab-required--ObjectSchema | Vocabulary | N |
ObjectSchema |
required: Defines which members of the object type are mandatory, i.e. which members are mandatory in the payload that is to be sent (e.g. input of invokeaction, writeproperty) and what members will be definitely delivered in the payload that is being received (e.g. output of invokeaction, readproperty) MAY be included. Type: Array of string . | td-vocabulary |
9 | 0 | 24 | 33 |
88: td-vocab-minLength--StringSchema | Vocabulary | N |
StringSchema |
minLength: Specifies the minimum length of a string. Only applicable for associated string types. MAY be included. Type: unsignedInt . | td-vocabulary |
2 | 0 | 31 | 33 |
89: td-vocab-maxLength--StringSchema | Vocabulary | N |
StringSchema |
maxLength: Specifies the maximum length of a string. Only applicable for associated string types. MAY be included. Type: unsignedInt . | td-vocabulary |
2 | 0 | 31 | 33 |
90: td-vocab-pattern--StringSchema | Vocabulary | N |
StringSchema |
pattern: Provides a regular expression to express constraints of the string value. The regular expression must follow the [ECMA-262] dialect. MAY be included. Type: string . | td-vocabulary |
2 | 0 | 31 | 33 |
91: td-vocab-contentEncoding--StringSchema | Vocabulary | N |
StringSchema |
contentEncoding: Specifies the encoding used to store the contents, as specified in [RFC2045] (Section 6.1) and [RFC4648]. MAY be included. Type: string (e.g., 7bit, 8bit, binary, quoted-printable, base16, base32, or base64) . | td-vocabulary |
2 | 0 | 31 | 33 |
92: td-vocab-contentMediaType--StringSchema | Vocabulary | N |
StringSchema |
contentMediaType: Specifies the MIME type of the contents of a string value, as described in [RFC2046]. MAY be included. Type: string (e.g., image/png, or audio/mpeg) . | td-vocabulary |
2 | 0 | 31 | 33 |
93: td-security-scheme-name | Syntax | Y |
SecurityScheme |
The value assigned to the name scheme MUST be defined within a Vocabulary included in the Thing Description, either in the standard Vocabulary defined in § 5. TD Information Model or in a TD Context Extension. | td-security |
33 | 0 | 0 | 33 |
95: sec-body-name-json-pointer | Security | Y | When used in the context of a body security information location, the value of name MUST be in the form of a JSON pointer [RFC6901] relative to the root of the input DataSchema for each interaction it is used with. | 2 | 0 | 31 | 33 | ||
97: sec-body-name-json-pointer-array | Security | N | The JSON pointer used in the body locator MAY use the "-" character to indicate a non-existent array element when it is necessary to insert an element after the last element of an existing array. | 2 | 0 | 31 | 33 | ||
100: td-security-in-uri-variable | Security | Y |
SecurityScheme |
The URIs provided in interactions where a security scheme using uri as the value for in MUST be a URI template including the defined variable. | td-security |
2 | 0 | 31 | 33 |
101: sec-security-vocab-auto-in-no-name | Security | N | If a value of auto is set for the in field of a SecurityScheme, then the name field SHOULD NOT be set. | 2 | 0 | 31 | 33 | ||
102: td-security-uri-variables-distinct | Security | Y |
SecurityScheme |
The names of URI variables declared in a SecurityScheme MUST be distinct from all other URI variables declared in the TD. | td-security |
2 | 0 | 31 | 33 |
103: td-vocab-at-type--SecurityScheme | Vocabulary | N |
DataSchema |
@type: JSON-LD keyword to label the object with semantic tags (or types). MAY be included. Type: string or Array of string . | td-vocabulary |
2 | 0 | 31 | 33 |
104: td-vocab-description--SecurityScheme | Vocabulary | N |
SecurityScheme |
description: Provides additional (human-readable) information based on a default language. MAY be included. Type: string . | td-vocabulary |
2 | 0 | 31 | 33 |
105: td-vocab-descriptions--SecurityScheme | Vocabulary | N |
SecurityScheme |
descriptions: Can be used to support (human-readable) information in different languages. Also see MultiLanguage. MAY be included. Type: Map of MultiLanguage . | td-vocabulary |
2 | 0 | 31 | 33 |
106: td-vocab-proxy--SecurityScheme | Vocabulary | N |
SecurityScheme |
proxy: URI of the proxy server this security configuration provides access to. If not given, the corresponding security configuration is for the endpoint. MAY be included. Type: anyURI . | td-vocabulary |
2 | 0 | 31 | 33 |
107: td-vocab-scheme--SecurityScheme | Vocabulary | Y |
SecurityScheme |
scheme: Identification of the security mechanism being configured. MUST be included. Type: string (e.g., nosec, combo, basic, digest, bearer, psk, oauth2, apikey, or auto) . | td-vocabulary |
2 | 0 | 31 | 33 |
107.01: td-vocab-scheme--SecurityScheme_apikey | Vocabulary | N |
APIKeySecurityScheme |
scheme: Identification of security mechanism being configured MAY be set to "apikey". |
td-vocab-scheme--SecurityScheme |
5 | 0 | 28 | 33 |
107.02: td-vocab-scheme--SecurityScheme_auto | Vocabulary | N |
APIKeySecurityScheme |
scheme: Identification of security mechanism being configured MAY be set to "auto". |
td-vocab-scheme--SecurityScheme |
2 | 0 | 31 | 33 |
107.03: td-vocab-scheme--SecurityScheme_basic | Vocabulary | N |
BasicSecurityScheme |
scheme: Identification of security mechanism being configured MAY be set to "basic". |
td-vocab-scheme--SecurityScheme |
10 | 0 | 23 | 33 |
107.04: td-vocab-scheme--SecurityScheme_bearer | Vocabulary | N |
BearerSecurityScheme |
scheme: Identification of security mechanism being configured MAY be set to "bearer". |
td-vocab-scheme--SecurityScheme |
7 | 0 | 26 | 33 |
107.05: td-vocab-scheme--SecurityScheme_digest | Vocabulary | N |
DigestSecurityScheme |
scheme: Identification of security mechanism being configured MAY be set to "digest". |
td-vocab-scheme--SecurityScheme |
4 | 0 | 29 | 33 |
107.06: td-vocab-scheme--SecurityScheme_nosec | Vocabulary | N |
NoSecurityScheme |
scheme: Identification of security mechanism being configured MAY be set to "nosec". |
td-vocab-scheme--SecurityScheme |
23 | 0 | 10 | 33 |
107.07: td-vocab-scheme--SecurityScheme_oauth2 | Vocabulary | N |
OAuth2SecurityScheme |
scheme: Identification of security mechanism being configured MAY be set to "oauth2". |
td-vocab-scheme--SecurityScheme |
7 | 0 | 26 | 33 |
107.08: td-vocab-scheme--SecurityScheme_psk | Vocabulary | N |
PSKSecurityScheme |
scheme: Identification of security mechanism being configured MAY be set to "psk". |
td-vocab-scheme--SecurityScheme |
2 | 0 | 31 | 33 |
108: td-security-combo-exclusive-oneof-or-allof | Security | Y |
ComboSecurityScheme |
Exactly one of either oneOf or allOf vocabulary terms MUST be included. | td-security |
4 | 0 | 29 | 33 |
109: td-vocab-oneOf--ComboSecurityScheme | Vocabulary | Y |
ComboSecurityScheme |
oneOf: Array of two or more strings identifying other named security scheme definitions, any one of which, when satisfied, will allow access. Only one may be chosen for use. MUST be included. Type: Array of string . | td-vocabulary |
2 | 0 | 31 | 33 |
110: td-vocab-allOf--ComboSecurityScheme | Vocabulary | Y |
ComboSecurityScheme |
allOf: Array of two or more strings identifying other named security scheme definitions, all of which must be satisfied for access. MUST be included. Type: Array of string . | td-vocabulary |
2 | 0 | 31 | 33 |
111: td-vocab-name--BasicSecurityScheme | Vocabulary | N |
BasicSecurityScheme |
name: Name for query, header, cookie, or uri parameters. MAY be included. Type: string . | td-vocabulary |
2 | 0 | 31 | 33 |
112: td-vocab-in--BasicSecurityScheme | Vocabulary | N |
BasicSecurityScheme |
in: Specifies the location of security authentication information. MAY be included. Type: string (one of header, query, body, cookie, or auto) . | td-vocabulary |
9 | 0 | 24 | 33 |
113: td-vocab-name--DigestSecurityScheme | Vocabulary | N |
DigestSecurityScheme |
name: Name for query, header, cookie, or uri parameters. MAY be included. Type: string . | td-vocabulary |
2 | 0 | 31 | 33 |
114: td-vocab-in--DigestSecurityScheme | Vocabulary | N |
DigestSecurityScheme |
in: Specifies the location of security authentication information. MAY be included. Type: string (one of header, query, body, cookie, or auto) . | td-vocabulary |
2 | 0 | 31 | 33 |
115: td-vocab-qop--DigestSecurityScheme | Vocabulary | N |
DigestSecurityScheme |
qop: Quality of protection. MAY be included. Type: string (one of auth, or auth-int) . | td-vocabulary |
2 | 0 | 31 | 33 |
116: td-vocab-name--APIKeySecurityScheme | Vocabulary | N |
APIKeySecurityScheme |
name: Name for query, header, cookie, or uri parameters. MAY be included. Type: string . | td-vocabulary |
4 | 0 | 29 | 33 |
117: td-vocab-in--APIKeySecurityScheme | Vocabulary | N |
APIKeySecurityScheme |
in: Specifies the location of security authentication information. MAY be included. Type: string (one of header, query, body, cookie, uri, or auto) . | td-vocabulary |
5 | 0 | 28 | 33 |
118: td-security-bearer-format-extensions | Security | N |
BearerSecurityScheme |
Other formats and algorithms for bearer tokens MAY be specified in vocabulary extensions | td-security |
3 | 0 | 30 | 33 |
118.01: td-security-bearer-format-extensions_alg | Security | N |
BearerSecurityScheme |
Other algorithms for bearer tokens MAY be specified in vocabulary extensions. | td-security |
3 | 0 | 30 | 33 |
118.02: td-security-bearer-format-extensions_format | Security | N |
BearerSecurityScheme |
Other formats for bearer tokens MAY be specified in vocabulary extensions. | td-security |
3 | 0 | 30 | 33 |
119: td-vocab-authorization--BearerSecurityScheme | Vocabulary | N |
BearerSecurityScheme |
authorization: URI of the authorization server. MAY be included. Type: anyURI . | td-vocabulary |
3 | 0 | 30 | 33 |
120: td-vocab-name--BearerSecurityScheme | Vocabulary | N |
BearerSecurityScheme |
name: Name for query, header, cookie, or uri parameters. MAY be included. Type: string . | td-vocabulary |
3 | 0 | 30 | 33 |
121: td-vocab-alg--BearerSecurityScheme | Vocabulary | N |
BearerSecurityScheme |
alg: Encoding, encryption, or digest algorithm. MAY be included. Type: string (e.g., ES256, or ES512-256) . | td-vocabulary |
7 | 0 | 26 | 33 |
122: td-vocab-format--BearerSecurityScheme | Vocabulary | N |
BearerSecurityScheme |
format: Specifies format of security authentication information. MAY be included. Type: string (e.g., jwt, cwt, jwe, or jws) . | td-vocabulary |
7 | 0 | 26 | 33 |
123: td-vocab-in--BearerSecurityScheme | Vocabulary | N |
BearerSecurityScheme |
in: Specifies the location of security authentication information. MAY be included. Type: string (one of header, query, body, cookie, or auto) . | td-vocabulary |
5 | 0 | 28 | 33 |
124: td-vocab-identity--PSKSecurityScheme | Vocabulary | N |
PSKSecurityScheme |
identity: Identifier providing information which can be used for selection or confirmation. MAY be included. Type: string . | td-vocabulary |
2 | 0 | 31 | 33 |
125: td-vocab-authorization--OAuth2SecurityScheme | Vocabulary | N |
OAuth2SecurityScheme |
authorization: URI of the authorization server. MAY be included. Type: anyURI . | td-vocabulary |
5 | 0 | 28 | 33 |
126: td-vocab-token--OAuth2SecurityScheme | Vocabulary | N |
OAuth2SecurityScheme |
token: URI of the token server. MAY be included. Type: anyURI . | td-vocabulary |
5 | 0 | 28 | 33 |
127: td-vocab-refresh--OAuth2SecurityScheme | Vocabulary | N |
OAuth2SecurityScheme |
refresh: URI of the refresh server. MAY be included. Type: anyURI . | td-vocabulary |
2 | 0 | 31 | 33 |
128: td-vocab-scopes--OAuth2SecurityScheme | Vocabulary | N |
OAuth2SecurityScheme |
scopes: Set of authorization scope identifiers provided as an array. These are provided in tokens returned by an authorization server and associated with forms in order to identify what resources a client may access and how. The values associated with a form SHOULD be chosen from those defined in an OAuth2SecurityScheme active on that form. MAY be included. Type: string or Array of string . | td-vocabulary |
5 | 0 | 28 | 33 |
129: td-vocab-flow--OAuth2SecurityScheme | Vocabulary | Y |
OAuth2SecurityScheme |
flow: Authorization flow. MUST be included. Type: string (e.g., code, or client) . | td-vocabulary |
5 | 0 | 28 | 33 |
130: td-security-oauth2-code-flow | Security | Y |
OAuth2SecurityScheme |
For the code flow both authorization and token vocabulary terms MUST be included. | td-security |
5 | 0 | 28 | 33 |
131: td-security-oauth2-client-flow | Security | Y |
OAuth2SecurityScheme |
For the client flow token vocabulary term MUST be included. | td-security |
2 | 0 | 31 | 33 |
132: td-security-oauth2-client-flow-no-auth | Security | Y |
OAuth2SecurityScheme |
For the client flow authorization vocabulary term MUST NOT be included. | td-security |
2 | 0 | 31 | 33 |
133: td-vocab-href--Link | Vocabulary | Y |
Link |
href: Target IRI of a link or submission target of a form. MUST be included. Type: anyURI . | td-vocabulary |
11 | 0 | 22 | 33 |
134: td-vocab-type--Link | Vocabulary | N |
Link |
type: Target attribute providing a hint indicating what the media type [RFC2046] of the result of dereferencing the link should be. MAY be included. Type: string . | td-vocabulary |
9 | 0 | 24 | 33 |
135: td-vocab-rel--Link | Vocabulary | N |
Link |
rel: A link relation type identifies the semantics of a link. MAY be included. Type: string . | td-vocabulary |
11 | 0 | 22 | 33 |
136: td-vocab-anchor--Link | Vocabulary | N |
Link |
anchor: Overrides the link context (by default the Thing itself identified by its id) with the given URI or IRI. MAY be included. Type: anyURI . | td-vocabulary |
2 | 0 | 31 | 33 |
137: td-vocab-sizes--Link | Vocabulary | N | sizes: Target attribute that specifies one or more sizes for the referenced icon. Only applicable for relation type "icon". The value pattern follows {Height}x{Width} (e.g., "16x16", "16x16 32x32"). MAY be included. Type: string . | 2 | 0 | 31 | 33 | ||
138: td-vocab-hreflang--Link | Vocabulary | N |
Link |
hreflang: The hreflang attribute specifies the language of a linked document. The value of this must be a valid language tag [BCP47]. MAY be included. Type: string or Array of string . | td-vocabulary |
3 | 0 | 31 | 34 |
139: td-vocab-href--Form | Vocabulary | Y |
Form |
href: Target IRI of a link or submission target of a form. MUST be included. Type: anyURI . | td-vocabulary |
31 | 0 | 2 | 33 |
140: td-vocab-contentType--Form | Vocabulary | N |
Form |
contentType: Assign a content type based on a media type (e.g., text/plain) and potential parameters (e.g., charset=utf-8) for the media type [RFC2046]. MAY be included. Type: string . | td-vocabulary |
30 | 0 | 3 | 33 |
141: td-vocab-contentCoding--Form | Vocabulary | N |
Form |
contentCoding: Content coding values indicate an encoding transformation that has been or can be applied to a representation. Content codings are primarily used to allow a representation to be compressed or otherwise usefully transformed without losing the identity of its underlying media type and without loss of information. Examples of content coding include "gzip", "deflate", etc. . MAY be included. Type: string . | td-vocabulary |
2 | 0 | 31 | 33 |
142: td-vocab-security--Form | Vocabulary | N |
Form |
security: Set of security definition names, chosen from those defined in securityDefinitions. These must all be satisfied for access to resources. MAY be included. Type: string or Array of string . | td-vocabulary |
6 | 0 | 27 | 33 |
143: td-vocab-scopes--Form | Vocabulary | N |
Form |
scopes: Set of authorization scope identifiers provided as an array. These are provided in tokens returned by an authorization server and associated with forms in order to identify what resources a client may access and how. The values associated with a form SHOULD be chosen from those defined in an OAuth2SecurityScheme active on that form. MAY be included. Type: string or Array of string . | td-vocabulary |
4 | 0 | 29 | 33 |
144: td-vocab-response--Form | Vocabulary | N |
Form |
response: This optional term can be used if, e.g., the output communication metadata differ from input metadata (e.g., output contentType differ from the input contentType). The response name contains metadata that is only valid for the primary response messages. MAY be included. Type: ExpectedResponse . | td-vocabulary |
5 | 0 | 28 | 33 |
145: td-vocab-additionalResponses--Form | Vocabulary | N |
Form |
additionalResponses: This optional term can be used if additional expected responses are possible, e.g. for error reporting. Each additional response needs to be distinguished from others in some way (for example, by specifying a protocol-specific error code), and may also have its own data schema. MAY be included. Type: Array of AdditionalExpectedResponse . | td-vocabulary |
7 | 0 | 26 | 33 |
146: td-vocab-subprotocol--Form | Vocabulary | N |
Form |
subprotocol: Indicates the exact mechanism by which an interaction will be accomplished for a given protocol when there are multiple options. For example, for HTTP and Events, it indicates which of several available mechanisms should be used for asynchronous notifications such as long polling (longpoll), WebSub [websub] (websub), Server-Sent Events (sse) [html] (also known as EventSource). Please note that there is no restriction on the subprotocol selection and other mechanisms can also be announced by this subprotocol term. MAY be included. Type: string (e.g., longpoll, websub, or sse) . | td-vocabulary |
17 | 0 | 16 | 33 |
147: td-vocab-op--Form | Vocabulary | N |
Form |
op: Indicates the semantic intention of performing the operation(s) described by the form. For example, the Property interaction allows get and set operations. The protocol binding may contain a form for the get operation and a different form for the set operation. The op attribute indicates which form is for which and allows the client to select the correct form for the operation required. op can be assigned one or more interaction verb(s) each representing a semantic intention of an operation. MAY be included. Type: string or Array of string (one of readproperty, writeproperty, observeproperty, unobserveproperty, invokeaction, queryaction, cancelaction, subscribeevent, unsubscribeevent, readallproperties, writeallproperties, readmultipleproperties, writemultipleproperties, observeallproperties, unobserveallproperties, subscribeallevents, unsubscribeallevents, or queryallactions) . | td-vocabulary |
3 | 0 | 30 | 33 |
147.01: td-vocab-op--Form_invokeaction | Vocabulary | Y |
Form |
Type: MUST be string or Array of string (invokeaction). | td-vocabulary |
14 | 0 | 19 | 33 |
147.02: td-vocab-op--Form_cancelaction | Vocabulary | Y |
Form |
Type: MUST be string or Array of string (cancelaction). | td-vocabulary |
3 | 0 | 30 | 33 |
147.03: td-vocab-op--Form_queryaction | Vocabulary | Y |
Form |
Type: MUST be string or Array of string (queryaction). | td-vocabulary |
3 | 0 | 30 | 33 |
147.04: td-vocab-op--Form_observeproperty | Vocabulary | Y |
Form |
Type: MUST be string or Array of string (observeproperty). | td-vocabulary |
13 | 0 | 20 | 33 |
147.05: td-vocab-op--Form_readproperty | Vocabulary | Y |
Form |
Type: MUST be string or Array of string (readproperty). | td-vocabulary |
26 | 0 | 7 | 33 |
147.06: td-vocab-op--Form_subscribeevent | Vocabulary | Y |
Form |
Type: MUST be string or Array of string (subscribeevent). | td-vocabulary |
16 | 0 | 17 | 33 |
147.07: td-vocab-op--Form_unobserveproperty | Vocabulary | Y |
Form |
Type: MUST be string or Array of string (unobserveproperty). | td-vocabulary |
7 | 0 | 26 | 33 |
147.08: td-vocab-op--Form_unsubscribeevent | Vocabulary | Y |
Form |
Type: MUST be string or Array of string (unsubscribeevent). | td-vocabulary |
8 | 0 | 25 | 33 |
147.09: td-vocab-op--Form_writeproperty | Vocabulary | Y |
Form |
Type: MUST be string or Array of string (writeproperty). | td-vocabulary |
15 | 0 | 18 | 33 |
147.10: td-vocab-op--Form_readallproperties | Vocabulary | Y |
Form |
Type: MUST be string or Array of string (readallproperties). | td-vocabulary |
13 | 0 | 20 | 33 |
147.11: td-vocab-op--Form_writeallproperties | Vocabulary | Y |
Form |
Type: MUST be string or Array of string (writeallproperties). | td-vocabulary |
8 | 0 | 25 | 33 |
147.12: td-vocab-op--Form_readmultipleproperties | Vocabulary | Y |
Form |
Type: MUST be string or Array of string (readmultipleproperties). | td-vocabulary |
8 | 0 | 25 | 33 |
147.13: td-vocab-op--Form_writemultipleproperties | Vocabulary | Y |
Form |
Type: MUST be string or Array of string (writemultipleproperties). | td-vocabulary |
8 | 0 | 25 | 33 |
147.14: td-vocab-op--Form_observeallproperties | Vocabulary | Y |
Form |
Type: MUST be string or Array of string (observeallproperties). | td-vocabulary |
4 | 0 | 29 | 33 |
147.15: td-vocab-op--Form_unobserveallproperties | Vocabulary | Y |
Form |
Type: MUST be string or Array of string (unobserveallproperties). | td-vocabulary |
4 | 0 | 29 | 33 |
147.16: td-vocab-op--Form_queryallactions | Vocabulary | Y |
Form |
Type: MUST be string or Array of string (queryallactions). | td-vocabulary |
3 | 0 | 30 | 33 |
147.17: td-vocab-op--Form_subscribeallevents | Vocabulary | Y |
Form |
Type: MUST be string or Array of string (subscribeallevents). | td-vocabulary |
3 | 0 | 30 | 33 |
147.18: td-vocab-op--Form_unsubscribeallevents | Vocabulary | Y |
Form |
Type: MUST be string or Array of string (unsubscribeallevents). | td-vocabulary |
3 | 0 | 30 | 33 |
148: well-known-operation-types-only | Syntax | Y |
Form |
operations types MUST be restricted to the values in the table below. | 39 | 0 | 1 | 40 | |
150: td-expectedResponse-contentType | Syntax | Y |
ActionAffordance Form |
If the content type of the expected response differs from the content type of the form, the Form instance MUST include a name-value pair with the name response. | td-actions |
9 | 0 | 27 | 36 |
151: td-additionalExpectedResponse-contentType | Syntax | Y |
Forms |
If the content type of an additional expected response differs from the content type of the form, the Form instance MUST include an entry in the array associated with the name additionalResponses that includes a value for the name contentType. | 7 | 0 | 26 | 33 | |
152: td-additionalExpectedResponse-schema | Syntax | Y |
Forms |
If the data schema of an additional expected response differs from the output data schema of the interaction, the Form instance MUST include an entry in the array associated with the name additionalResponses that includes a value for the name schema. | 7 | 0 | 26 | 33 | |
153: td-vocab-contentType--ExpectedResponse | Vocabulary | Y |
ExpectedResponse |
contentType: Assign a content type based on a media type (e.g., text/plain) and potential parameters (e.g., charset=utf-8) for the media type [RFC2046]. MUST be included. Type: string . | td-vocabulary |
5 | 0 | 28 | 33 |
154: td-vocab-success--AdditionalExpectedResponse | Vocabulary | N | success: Signals if an additional response should not be considered an error. MAY be included. Type: boolean . | 7 | 0 | 26 | 33 | ||
155: td-vocab-contentType--AdditionalExpectedResponse | Vocabulary | N |
AdditionalExpectedResponse |
contentType: Assign a content type based on a media type (e.g., text/plain) and potential parameters (e.g., charset=utf-8) for the media type [RFC2046]. MAY be included. Type: string . | td-vocabulary |
7 | 0 | 26 | 33 |
156: td-vocab-schema--AdditionalExpectedResponse | Vocabulary | N |
AdditionalExpectedResponse |
schema: Used to define the output data schema for an additional response if it differs from the default output data schema. Rather than a DataSchema object, the name of a previous definition given in a schemaDefinitions map must be used. MAY be included. Type: string . | td-vocabulary |
7 | 0 | 26 | 33 |
177.01: td-json-open_utf-8 | Syntax | Y |
Thing |
TDs MUST be encoded using UTF-8 [RFC3629]. | td-json-open |
33 | 0 | 0 | 33 |
178: td-string-type | Syntax | Y |
Thing |
Values that are of type string or anyURI MUST be serialized as JSON strings. | 33 | 0 | 0 | 33 | |
179: td-datetime-type | Syntax | Y |
Thing |
Values that are of type dateTime MUST be serialized as JSON strings following the "date-time" format specified by [RFC3339]. | 10 | 0 | 23 | 33 | |
180: td-datetime-recommended-type | Syntax | N |
Thing |
Values that are of type dateTime SHOULD use the literal Z representing the UTC time zone instead of an offset. | 10 | 0 | 23 | 33 | |
181: td-integer-type | Syntax | Y |
Thing |
Values that are of type integer or unsignedInt MUST be serialized as JSON numbers without a fraction or exponent part. | 16 | 1 | 16 | 33 | |
182: td-number-type | Syntax | Y |
Thing |
Values that are of type double MUST be serialized as JSON number. | 27 | 0 | 6 | 33 | |
183: td-boolean-type | Type | Y |
Thing |
Values that are of type boolean MUST be serialized as JSON boolean. | 30 | 0 | 3 | 33 | |
184: td-array-type | Type | Y |
Thing |
A value of type Array MUST be serialized as JSON array, with each value of the name-value pairs as element of the JSON array ordered by the numeric name of the pair. | 33 | 0 | 0 | 33 | |
185: td-map-type | Type | Y |
Thing |
A value of type Map MUST be serialized as a JSON object, with each name-value pair as member of the JSON object. | 33 | 0 | 0 | 33 | |
186: td-class-type | Type | Y |
Thing |
A Class instance MUST be serialized as a JSON object, following the detailed rules given individually in 6.3 Information Model Serialization. | 33 | 0 | 0 | 33 | |
187: td-context | Syntax | Y |
Thing |
The root element of a TD Serialization MUST be a JSON object that includes a member with the name @context and a value of type string or array that equals or respectively contains https://www.w3.org/2022/wot/td/v1.1. | 24 | 0 | 9 | 33 | |
188: td-context-toplevel | Syntax | Y |
Thing |
All name-value pairs of an instance of Thing, where the name is a Vocabulary Term in the Signature of Thing, MUST be serialized as JSON members of the root object. | 33 | 0 | 0 | 33 | |
189: td-objects | Syntax | Y |
PropertyAffordance ActionAffordance EventAffordance SecurityScheme MultiLanguage |
All values assigned to version, securityDefinitions, descriptions, schemaDefinitions, uriVariables, properties, actions, and events in an instance of the Class Thing MUST be serialized as JSON objects. | 3 | 0 | 30 | 33 | |
189.01: td-objects_actions | Syntax | Y |
Thing |
The type of the members actions MUST be serialized as a JSON object. | td-objects |
23 | 0 | 10 | 33 |
189.02: td-objects_events | Syntax | Y |
Thing |
The type of the members events MUST be serialized as a JSON object. | td-objects |
19 | 0 | 14 | 33 |
189.03: td-objects_properties | Syntax | Y |
Thing |
The type of the members properties MUST be serialized as a JSON object. | td-objects |
33 | 0 | 0 | 33 |
189.04: td-objects_securityDefinitions | Syntax | Y |
Thing |
The type of the members securityDefinitions MUST be serialized as a JSON object. | td-objects |
33 | 0 | 0 | 33 |
189.05: td-objects_version | Syntax | Y |
Thing |
The type of the members version MUST be serialized as a JSON object. | td-objects |
12 | 0 | 21 | 33 |
189.06: td-objects_descriptions | Syntax | Y |
Thing |
The type of the members descriptions MUST be serialized as a JSON object. | td-objects |
9 | 0 | 24 | 33 |
189.07: td-objects_schemaDefinitions | Syntax | Y |
Thing |
The type of the members schemaDefinitions MUST be serialized as a JSON object. | td-objects |
3 | 0 | 30 | 33 |
189.08: td-objects_uriVariables | Syntax | Y |
Thing |
The type of the members uriVariables MUST be serialized as a JSON object. | td-objects |
12 | 0 | 21 | 33 |
190: td-arrays | Syntax | Y |
Forms Links Security Scopes |
All values assigned to links, and forms in an instance of the Class Thing MUST be serialized as JSON arrays containing JSON objects as defined in 6.3.8 links and 6.3.9 forms, respectively. | 11 | 0 | 22 | 33 | |
190.01: td-arrays_links | Syntax | Y |
Thing |
The type of the member links MUST be a JSON array. | td-arrays |
11 | 0 | 22 | 33 |
190.02: td-arrays_forms | Syntax | Y |
Thing InteractionAffordance |
The type of the member forms MUST be a JSON array. | td-arrays |
31 | 0 | 2 | 33 |
191: td-security-activation | Syntax | Y |
Thing Form |
The value assigned to security in an instance of Class Thing MUST be serialized as JSON string or as JSON array whose elements are JSON strings. | td-security |
33 | 0 | 0 | 33 |
193: td-text-at-direction | Language | N | (Context) |
Given that the Thing Description format is based on JSON-LD 1.1 [json-ld11], @direction with the string values "ltr", "rtl" and null value null MAY be used inside the @context to indicate the default text direction for the human readable strings in the entire TD document. | 2 | 0 | 31 | 33 | |
196: td-multi-languages | Syntax | Y |
Thing InteractionAffordance DataSchema |
All name-value pairs of a MultiLanguage Map MUST be serialized as members of a JSON object, where the name is a valid language tag as defined by [BCP47] (also see W3C I18N Glossary) and the value is a human-readable string in the language indicated by the tag. | 7 | 0 | 26 | 33 | |
196.01: td-multi-languages_descriptions | Syntax | Y |
Thing InteractionAffordance DataSchema |
Whenever the vocabulary terms descriptions can be used it MUST be serialized as JSON object. The member names of the JSON Object MUST be the language tags as defined in [[BCP47]] (e.g., "en", "de", "ja", "zh-Hans", "zh-Hant"). The value of each member MUST be serialized as JSON string. | td-multi-languages |
8 | 0 | 25 | 33 |
196.02: td-multi-languages_titles | Syntax | Y |
Thing InteractionAffordance DataSchema |
Whenever the vocabulary terms titles can be used it MUST be serialized as JSON object. The member names of the JSON Object MUST be the language tags as defined in [[BCP47]] (e.g., "en", "de", "ja", "zh-Hans", "zh-Hant"). The value of each member MUST be serialized as JSON string. | td-multi-languages |
7 | 0 | 26 | 33 |
197: td-multi-languages-consistent | Syntax | N |
Thing InteractionAffordance DataSchema |
All MultiLanguage object within a TD document SHOULD contain the same set of language members. | 33 | 0 | 0 | 33 | |
198: td-title-description | Syntax | N |
Thing InteractionAffordance DataSchema |
When title and titles or description and descriptions are present within the same JSON object, the values of title and description MAY be seen as the default text. | 7 | 0 | 26 | 33 | |
198.01: td-title-description_descriptions | Syntax | N |
Thing InteractionAffordance DataSchema |
If description and descriptions are defined at the same time at the JSON level, description MAY be seen as default text. | td-title-description |
7 | 0 | 26 | 33 |
198.02: td-title-description_titles | Syntax | N |
Thing InteractionAffordance DataSchema |
If title and titles are defined at the same time at the JSON level, title MAY be seen as default text. | td-title-description |
7 | 0 | 26 | 33 |
199: td-titles-descriptions | Syntax | N |
Thing InteractionAffordance DataSchema |
When title and titles or description and descriptions are present in a TD document, each title and description member SHOULD have a corresponding titles and descriptions member, respectively. | 7 | 0 | 26 | 33 | |
203: td-version | Syntax | Y |
Thing |
All name-value pairs of an instance of VersionInfo, where the name is a Vocabulary Term included in the Signature of VersionInfo, MUST be serialized as JSON members with the Vocabulary Term as name. | 12 | 0 | 21 | 33 | |
204: td-security | Security | Y |
Thing Form |
All name-value pairs of a Map of SecurityScheme instances MUST be serialized as members of the JSON object that results from serializing the Map; the name of a pair MUST be serialized as a JSON string and the value of the pair, an instance of SecurityScheme, MUST be serialized as a JSON object. | td-security |
33 | 0 | 0 | 33 |
205: td-security-schemes | Syntax | Y |
SecurityScheme |
All name-value pairs of an instance of one of the Subclasses of SecurityScheme, where the name is a Vocabulary Term included in the Signature of that Subclass or in the Signature of SecurityScheme, MUST be serialized as members of the JSON object that results from serializing the SecurityScheme Subclass's instance, with the Vocabulary Term as name. | td-security |
33 | 0 | 0 | 33 |
206: td-security-mandatory | Security | Y |
Thing |
At least one security definition MUST be activated through the security member at the Thing level (i.e., in the TD root object). | td-security |
33 | 0 | 0 | 33 |
207: td-security-overrides | Security | N |
Thing Form |
Security definitions MAY also be activated at the level of the form elements by including a security member in form objects, which overrides (i.e., completely replace) all definitions activated at the Thing level. | td-security |
6 | 0 | 27 | 33 |
208: td-security-combo-deprecation | Security | N |
ComboSecurityScheme |
However, the use of an array with multiple elements to combine security schemes in a security element is now deprecated, instead a ComboSecurityScheme SHOULD be used. | td-security |
5 | 0 | 28 | 33 |
209: td-properties | Syntax | Y |
Thing |
All name-value pairs of a Map of PropertyAffordance instances MUST be serialized as members of the JSON object that results from serializing the Map; the name of a pair MUST be serialized as a JSON string and the value of the pair, an instance of PropertyAffordance, MUST be serialized as a JSON object. | 33 | 0 | 0 | 33 | |
209.01: td-properties_existence | Syntax | Y |
Thing |
Properties offered by a Thing MUST be collected in the JSON-object based properties member. | td-properties |
33 | 0 | 0 | 33 |
209.02: td-properties_uniqueness | Syntax | Y |
Thing |
Properties collected in the JSON-object based properties member MUST have unique JSON names. | td-properties |
33 | 0 | 0 | 33 |
210: td-property-names | Syntax | Y |
PropertyAffordance |
All name-value pairs of an instance of PropertyAffordance, where the name is a Vocabulary Term included in (one of) the Signatures of PropertyAffordance, InteractionAffordance, or DataSchema, MUST be serialized as members of the JSON object that results from serializing the PropertyAffordance instance, with the Vocabulary Term as name. | td-properties |
2 | 0 | 31 | 33 |
210.01: td-property-names_at-type | Syntax | Y |
PropertyAffordance |
The vocabulary term @type MUST be serialized as a JSON name within a Property object. | td-property-names |
14 | 0 | 19 | 33 |
210.02: td-property-names_const | Syntax | Y |
PropertyAffordance |
The vocabulary term const MUST be serialized as a JSON name within a Property object. | td-property-names |
2 | 0 | 31 | 33 |
210.03: td-property-names_contentEncoding | Syntax | Y |
PropertyAffordance |
The vocabulary term contentEncoding MUST be serialized as a JSON name within a Property object. | td-property-names |
2 | 0 | 31 | 33 |
210.04: td-property-names_contentMediaType | Syntax | Y |
PropertyAffordance |
The vocabulary term contentMediaType MUST be serialized as a JSON name within a Property object. | td-property-names |
2 | 0 | 31 | 33 |
210.05: td-property-names_description | Syntax | Y |
PropertyAffordance |
The vocabulary term description MUST be serialized as a JSON name within a Property object. | td-property-names |
25 | 0 | 8 | 33 |
210.06: td-property-names_descriptions | Syntax | Y |
PropertyAffordance |
The vocabulary term descriptions MUST be serialized as a JSON name within a Property object. | td-property-names |
4 | 0 | 29 | 33 |
210.07: td-property-names_enum | Syntax | Y |
PropertyAffordance |
The vocabulary term enum MUST be serialized as a JSON name within a Property object. | td-property-names |
8 | 0 | 25 | 33 |
210.08: td-property-names_exclusiveMaximum | Syntax | Y |
PropertyAffordance |
The vocabulary term exclusiveMaximum MUST be serialized as a JSON name within a Property object. | td-property-names |
2 | 0 | 31 | 33 |
210.09: td-property-names_exclusiveMinimum | Syntax | Y |
PropertyAffordance |
The vocabulary term exclusiveMinimum MUST be serialized as a JSON name within a Property object. | td-property-names |
2 | 0 | 31 | 33 |
210.10: td-property-names_forms | Syntax | Y |
PropertyAffordance |
The vocabulary term forms MUST be serialized as a JSON name within a Property object. | td-property-names |
31 | 0 | 2 | 33 |
210.11: td-property-names_format | Syntax | Y |
PropertyAffordance |
The vocabulary term format MUST be serialized as a JSON name within a Property object. | td-property-names |
8 | 0 | 25 | 33 |
210.12: td-property-names_items | Syntax | Y |
PropertyAffordance |
The vocabulary term items MUST be serialized as a JSON name within a Property object. | td-property-names |
5 | 0 | 28 | 33 |
210.13: td-property-names_maxItems | Syntax | Y |
PropertyAffordance |
The vocabulary term maxItems MUST be serialized as a JSON name within a Property object. | td-property-names |
2 | 0 | 31 | 33 |
210.14: td-property-names_maximum | Syntax | Y |
PropertyAffordance |
The vocabulary term maximum MUST be serialized as a JSON name within a Property object. | td-property-names |
15 | 0 | 18 | 33 |
210.15: td-property-names_minItems | Syntax | Y |
PropertyAffordance |
The vocabulary term minItems MUST be serialized as a JSON name within a Property object. | td-property-names |
2 | 0 | 31 | 33 |
210.16: td-property-names_minimum | Syntax | Y |
PropertyAffordance |
The vocabulary term minimum MUST be serialized as a JSON name within a Property object. | td-property-names |
15 | 0 | 18 | 33 |
210.17: td-property-names_maxLength | Syntax | Y |
PropertyAffordance |
The vocabulary term maxLength MUST be serialized as a JSON name within a Property object. | td-property-names |
2 | 0 | 31 | 33 |
210.18: td-property-names_minLength | Syntax | Y |
PropertyAffordance |
The vocabulary term minLength MUST be serialized as a JSON name within a Property object. | td-property-names |
2 | 0 | 31 | 33 |
210.19: td-property-names_multipleOf | Syntax | Y |
PropertyAffordance |
The vocabulary term multipleOf MUST be serialized as a JSON name within a Property object. | td-property-names |
5 | 0 | 28 | 33 |
210.20: td-property-names_observable | Syntax | Y |
PropertyAffordance |
The vocabulary term observable MUST be serialized as a JSON name within a Property object. | td-property-names |
16 | 0 | 17 | 33 |
210.21: td-property-names_oneOf | Syntax | Y |
PropertyAffordance |
The vocabulary term oneOf MUST be serialized as a JSON name within a Property object. | td-property-names |
3 | 0 | 30 | 33 |
210.22: td-property-names_properties | Syntax | Y |
PropertyAffordance |
The vocabulary term properties MUST be serialized as a JSON name within a Property object. | td-property-names |
17 | 0 | 16 | 33 |
210.23: td-property-names_readOnly | Syntax | Y |
PropertyAffordance |
The vocabulary term readOnly MUST be serialized as a JSON name within a Property object. | td-property-names |
24 | 0 | 9 | 33 |
210.24: td-property-names_required | Syntax | Y |
PropertyAffordance |
The vocabulary term required MUST be serialized as a JSON name within a Property object. | td-property-names |
4 | 0 | 29 | 33 |
210.25: td-property-names_title | Syntax | Y |
PropertyAffordance |
The vocabulary term title MUST be serialized as a JSON name within a Property object. | td-property-names |
20 | 0 | 13 | 33 |
210.26: td-property-names_titles | Syntax | Y |
PropertyAffordance |
The vocabulary term titles MUST be serialized as a JSON name within a Property object. | td-property-names |
4 | 0 | 29 | 33 |
210.27: td-property-names_type | Syntax | Y |
PropertyAffordance |
The vocabulary term type MUST be serialized as a JSON name within a Property object. | td-property-names |
30 | 0 | 3 | 33 |
210.28: td-property-names_unit | Syntax | Y |
PropertyAffordance |
The vocabulary term unit MUST be serialized as a JSON name within a Property object. | td-property-names |
11 | 0 | 22 | 33 |
210.29: td-property-names_uriVariables | Syntax | Y |
PropertyAffordance |
The vocabulary term uriVariables MUST be serialized as a JSON name within a Property object. | td-property-names |
7 | 0 | 26 | 33 |
210.30: td-property-names_writeOnly | Syntax | Y |
PropertyAffordance |
The vocabulary term writeOnly MUST be serialized as a JSON name within a Property object. | td-property-names |
12 | 0 | 21 | 33 |
211: td-property-arrays | Syntax | Y |
PropertyAffordance |
The value assigned to forms in an instance of PropertyAffordance MUST be serialized as a JSON array containing one or more JSON object serializations as defined in 6.3.9 forms. | td-properties |
31 | 0 | 2 | 33 |
212: td-actions | Syntax | Y |
Thing |
All name-value pairs of a Map of ActionAffordance instances MUST be serialized as members of the JSON object that results from serializing the Map; the name of a pair MUST be serialized as a JSON string and the value of the pair, an instance of ActionAffordance, MUST be serialized as a JSON object. | 23 | 0 | 10 | 33 | |
212.01: td-actions_uniqueness | Syntax | Y |
ActionAffordance |
Actions collected in the JSON-object based actions member MUST have unique JSON names. | td-actions |
23 | 0 | 10 | 33 |
212.02: td-actions_existence | Syntax | Y |
ActionAffordance |
Actions offered by a Thing MUST be collected in the JSON-object based actions member. | td-actions |
23 | 0 | 10 | 33 |
213: td-action-names | Syntax | Y |
ActionAffordance |
All name-value pairs of an instance of ActionAffordance, where the name is a Vocabulary Term included in (one of) the Signatures of ActionAffordance or InteractionAffordance, MUST be serialized as members of the JSON object that results from serializing the ActionAffordance instance, with the Vocabulary Term as name. | td-actions |
2 | 0 | 31 | 33 |
213.01: td-action-names_idempotent | Syntax | Y |
ActionAffordance |
The vocabulary term idempotent MUST be serialized as a JSON name within an Action object. | td-action-names |
17 | 0 | 16 | 33 |
213.02: td-action-names_forms | Syntax | Y |
ActionAffordance |
The vocabulary term forms MUST be serialized as a JSON name within an Action object. | td-action-names |
21 | 0 | 12 | 33 |
213.03: td-action-names_descriptions | Syntax | Y |
ActionAffordance |
The vocabulary term descriptions MUST be serialized as a JSON name within an Action object. | td-action-names |
4 | 0 | 29 | 33 |
213.04: td-action-names_description | Syntax | Y |
ActionAffordance |
The vocabulary term description MUST be serialized as a JSON name within an Action object. | td-action-names |
21 | 0 | 12 | 33 |
213.05: td-action-names_uriVariables | Syntax | Y |
ActionAffordance |
The vocabulary term uriVariables MUST be serialized as a JSON name within an Action object. | td-action-names |
9 | 0 | 24 | 33 |
213.06: td-action-names_at-type | Syntax | Y |
ActionAffordance |
The vocabulary term @type MUST be serialized as a JSON name within an Action object. | td-action-names |
6 | 0 | 27 | 33 |
213.07: td-action-names_input | Syntax | Y |
ActionAffordance |
The vocabulary term input MUST be serialized as a JSON name within an Action object. | td-action-names |
19 | 0 | 14 | 33 |
213.08: td-action-names_titles | Syntax | Y |
ActionAffordance |
The vocabulary term titles MUST be serialized as a JSON name within an Action object. | td-action-names |
2 | 0 | 31 | 33 |
213.09: td-action-names_title | Syntax | Y |
ActionAffordance |
The vocabulary term title MUST be serialized as a JSON name within an Action object. | td-action-names |
16 | 0 | 17 | 33 |
213.10: td-action-names_safe | Syntax | Y |
ActionAffordance |
The vocabulary term safe MUST be serialized as a JSON name within an Action object. | td-action-names |
15 | 0 | 18 | 33 |
213.11: td-action-names_output | Syntax | Y |
ActionAffordance |
The vocabulary term output MUST be serialized as a JSON name within an Action object. | td-action-names |
10 | 0 | 23 | 33 |
214: td-action-objects | Syntax | Y |
ActionAffordance |
The values assigned to input and output in an instance of ActionAffordance MUST be serialized as JSON objects. | td-actions |
10 | 0 | 23 | 33 |
214.01: td-action-objects_output | Syntax | Y |
ActionAffordance |
The type of the members output MUST be serialized as a JSON object. | td-action-objects |
10 | 0 | 23 | 33 |
214.02: td-action-objects_input | Syntax | Y |
ActionAffordance |
The type of the members input MUST be serialized as a JSON object. | td-action-objects |
19 | 0 | 14 | 33 |
215: td-action-arrays | Syntax | Y |
ActionAffordance |
The value assigned to forms in an instance of ActionAffordance MUST be serialized as a JSON array containing one or more JSON object serializations as defined in 6.3.9 forms. | td-actions |
21 | 0 | 12 | 33 |
216: td-events | Syntax | Y |
Thing |
All name-value pairs of a Map of EventAffordance instances MUST be serialized as members of the JSON object that results from serializing the Map; the name of a pair MUST be serialized as a JSON string and the value of the pair, an instance of EventAffordance, MUST be serialized as a JSON object. | 19 | 0 | 14 | 33 | |
216.01: td-events_existence | Syntax | Y |
EventAffordance |
Events offered by a Thing MUST be collected in the JSON-object based events member. | td-events |
19 | 0 | 14 | 33 |
216.02: td-events_uniqueness | Syntax | Y |
EventAffordance |
Events collected in the JSON-object based events member MUST have unique JSON names. | td-events |
19 | 0 | 14 | 33 |
217: td-event-names | Syntax | Y |
EventAffordance |
All name-value pairs of an instance of EventAffordance, where the name is a Vocabulary Term included in (one of) the Signatures of EventAffordance or InteractionAffordance, MUST be serialized as members of the JSON object that results from serializing the EventAffordance instance, with the Vocabulary Term as name. | td-events |
2 | 0 | 31 | 33 |
217.01: td-event-names_at-type | Syntax | Y | The vocabulary term @type MUST be serialized as a JSON name within an Event object. | 4 | 0 | 29 | 33 | ||
217.02: td-event-names_cancellation | Syntax | Y |
EventAffordance |
The vocabulary term cancellation MUST be serialized as a JSON name within an Event object. | td-event-names |
2 | 0 | 31 | 33 |
217.03: td-event-names_data | Syntax | Y |
EventAffordance |
The vocabulary term data MUST be serialized as a JSON name within an Event object. | td-event-names |
16 | 0 | 17 | 33 |
217.04: td-event-names_dataResponse | Syntax | Y |
EventAffordance |
The vocabulary term dataResponse MUST be serialized as a JSON name within an Event object. | td-event-names |
16 | 0 | 17 | 33 |
217.05: td-event-names_description | Syntax | Y |
EventAffordance |
The vocabulary term description MUST be serialized as a JSON name within an Event object. | td-event-names |
14 | 0 | 19 | 33 |
217.06: td-event-names_descriptions | Syntax | Y |
EventAffordance |
The vocabulary term descriptions MUST be serialized as a JSON name within an Event object. | td-event-names |
3 | 0 | 30 | 33 |
217.07: td-event-names_forms | Syntax | Y |
EventAffordance |
The vocabulary term forms MUST be serialized as a JSON name within an Event object. | td-event-names |
15 | 0 | 18 | 33 |
217.08: td-event-names_subscription | Syntax | Y |
EventAffordance |
The vocabulary term subscription MUST be serialized as a JSON name within an Event object. | td-event-names |
2 | 0 | 31 | 33 |
217.09: td-event-names_title | Syntax | Y |
EventAffordance |
The vocabulary term title MUST be serialized as a JSON name within an Event object. | td-event-names |
10 | 0 | 23 | 33 |
217.10: td-event-names_titles | Syntax | Y |
EventAffordance |
The vocabulary term titles MUST be serialized as a JSON name within an Event object. | td-event-names |
4 | 0 | 29 | 33 |
217.11: td-event-names_uriVariables | Syntax | Y |
EventAffordance |
The vocabulary term uriVariables MUST be serialized as a JSON name within an Event object. | td-event-names |
3 | 0 | 30 | 33 |
218: td-event-objects | Syntax | Y |
EventAffordance |
The values assigned to subscription, data, and cancellation in an instance of EventAffordance MUST be serialized as JSON objects. | td-events |
2 | 0 | 31 | 33 |
218.01: td-event-objects_cancellation | Syntax | Y |
EventAffordance |
The type of the members cancellation MUST be serialized as a JSON object. | td-event-objects |
2 | 0 | 31 | 33 |
218.02: td-event-objects_data | Syntax | Y |
EventAffordance |
The type of the members data MUST be serialized as a JSON object. | td-event-objects |
16 | 0 | 17 | 33 |
218.03: td-event-objects_dataResponse | Syntax | Y |
EventAffordance |
The type of the members dataResponse MUST be serialized as a JSON object. | td-event-objects |
16 | 0 | 17 | 33 |
218.04: td-event-objects_subscription | Syntax | Y |
EventAffordance |
The type of the members subscription MUST be serialized as a JSON object. | td-event-objects |
2 | 0 | 31 | 33 |
219: td-event-arrays | Syntax | Y |
EventAffordance |
The value assigned to forms in an instance of EventAffordance MUST be serialized as a JSON array containing one or more JSON object serializations as defined in 6.3.9 forms. | td-events |
15 | 0 | 18 | 33 |
220: td-links | Syntax | Y |
Thing |
All name-value pairs of an instance of Link, where the name is a Vocabulary Term included in the Signature of Link, MUST be serialized as members of the JSON object that results from serializing the Link instance, with the Vocabulary Term as name. | 11 | 0 | 22 | 33 | |
221: td-forms | Syntax | Y |
Thing InteractionAffordance |
All name-value pairs of an instance of Form, where the name is a Vocabulary Term included in the Signature of Form, MUST be serialized as members of the JSON object that results from serializing the Form instance, with the Vocabulary Term as name. | 31 | 0 | 2 | 33 | |
223: td-uriVariables-names | Syntax | Y |
InteractionAffordance |
In such a case, the URI Template variables MUST be collected in the JSON-object based uriVariables member either in the Thing level or in Interaction Affordance level with the associated (unique) variable names as JSON names. | 11 | 0 | 22 | 33 | |
224: td-uriVariables-dataschema | Syntax | Y |
InteractionAffordance |
The serialization of each value in the map assigned to uriVariables in an instance of Form MUST rely on the Class DataSchema, whose serialization is defined in 6.3.10 Data Schemas. | 11 | 0 | 22 | 33 | |
225: td-form-response-object | Syntax | Y |
Form |
If present, the value assigned to response in an instance of Form MUST be a JSON object. | td-forms |
5 | 0 | 28 | 33 |
226: td-forms-response | Syntax | Y |
Form |
If present, the response object MUST contain a contentType member as defined in the Class definition of ExpectedResponse. | 5 | 0 | 28 | 33 | |
227: td-data-schema | Syntax | Y |
DataSchema |
All name-value pairs of an instance of one of the Subclasses of DataSchema, where the name is a Vocabulary Term included in the Signature of that Subclass or in the Signature of DataSchema, MUST be serialized as members of the JSON object that results from serializing the DataSchema Subclass's instance, with the Vocabulary Term as name. | 2 | 1 | 31 | 34 | |
227.01: td-data-schema_at-type | Syntax | Y |
DataSchema |
The @type vocabulary term as defined in the class DataSchema MUST be serialized as a JSON name. | td-data-schema |
14 | 0 | 19 | 33 |
227.02: td-data-schema_const | Syntax | Y |
DataSchema |
The const vocabulary term as defined in the class DataSchema MUST be serialized as a JSON name. | td-data-schema |
7 | 0 | 26 | 33 |
227.03: td-data-schema_contentEncoding | Syntax | Y |
StringSchema |
The contentEncoding vocabulary term as defined in the class DataSchema MUST be serialized as a JSON name. | td-data-schema |
2 | 0 | 31 | 33 |
227.04: td-data-schema_contentMediaType | Syntax | Y |
StringSchema |
The contentMediaType vocabulary term as defined in the class DataSchema MUST be serialized as a JSON name. | td-data-schema |
2 | 0 | 31 | 33 |
227.05: td-data-schema_maxLength | Syntax | Y |
StringSchema |
The maxLength vocabulary term as defined in the class DataSchema MUST be serialized as a JSON name. | td-data-schema |
2 | 0 | 31 | 33 |
227.06: td-data-schema_minLength | Syntax | Y |
StringSchema |
The minLength vocabulary term as defined in the class DataSchema MUST be serialized as a JSON name. | td-data-schema |
2 | 0 | 31 | 33 |
227.07: td-data-schema_multipleOf-IntegerSchema | Syntax | Y |
IntegerSchema |
The multipleOf vocabulary term as defined in the class DataSchema MUST be serialized as a JSON name. | td-data-schema |
2 | 0 | 31 | 33 |
227.08: td-data-schema_multipleOf-NumberSchema | Syntax | Y |
NumberSchema |
The multipleOf vocabulary term as defined in the class DataSchema MUST be serialized as a JSON name. | td-data-schema |
4 | 0 | 29 | 33 |
227.09: td-data-schema_description | Syntax | Y |
DataSchema |
The description vocabulary term as defined in the class DataSchema MUST be serialized as a JSON name. | td-data-schema |
29 | 0 | 4 | 33 |
227.10: td-data-schema_descriptions | Syntax | Y |
DataSchema |
The descriptions vocabulary term as defined in the class DataSchema MUST be serialized as a JSON name. | td-data-schema |
7 | 0 | 26 | 33 |
227.11: td-data-schema_enum | Syntax | Y |
DataSchema |
The enum vocabulary term as defined in the class DataSchema MUST be serialized as a JSON name. | td-data-schema |
13 | 0 | 20 | 33 |
227.12: td-data-schema_exclusiveMaximum-IntegerSchema | Syntax | Y |
IntegerSchema |
The exclusiveMaximum vocabulary term as defined in the class DataSchema MUST be serialized as a JSON name. | td-data-schema |
2 | 0 | 31 | 33 |
227.13: td-data-schema_exclusiveMaximum-NumberSchema | Syntax | Y |
NumberSchema |
The exclusiveMaximum vocabulary term as defined in the class DataSchema MUST be serialized as a JSON name. | td-data-schema |
2 | 0 | 31 | 33 |
227.14: td-data-schema_exclusiveMinimum-IntegerSchema | Syntax | Y |
IntegerSchema |
The exclusiveMinimum vocabulary term as defined in the class DataSchema MUST be serialized as a JSON name. | td-data-schema |
2 | 0 | 31 | 33 |
227.15: td-data-schema_exclusiveMinimum-NumberSchema | Syntax | Y |
NumberSchema |
The exclusiveMinimum vocabulary term as defined in the class DataSchema MUST be serialized as a JSON name. | td-data-schema |
2 | 0 | 31 | 33 |
227.16: td-data-schema_format | Syntax | Y |
DataSchema |
The format vocabulary term as defined in the class DataSchema MUST be serialized as a JSON name. | td-data-schema |
8 | 0 | 25 | 33 |
227.17: td-data-schema_items | Syntax | Y |
ArraySchema |
The items vocabulary term as defined in the class DataSchema MUST be serialized as a JSON name. | td-data-schema |
9 | 0 | 24 | 33 |
227.18: td-data-schema_maxItems | Syntax | Y |
ArraySchema |
The maxItems vocabulary term as defined in the class DataSchema MUST be serialized as a JSON name. | td-data-schema |
5 | 0 | 28 | 33 |
227.19: td-data-schema_maximum-NumberSchema | Syntax | Y |
NumberSchema |
The maximum vocabulary term as defined in the class DataSchema for numbers MUST be serialized as a JSON name. | td-data-schema |
18 | 0 | 15 | 33 |
227.20: td-data-schema_maximum-IntegerSchema | Syntax | Y |
IntegerSchema |
The maximum vocabulary term as defined in the class DataSchema for integers MUST be serialized as a JSON name. | td-data-schema |
12 | 1 | 20 | 33 |
227.21: td-data-schema_minItems | Syntax | Y |
ArraySchema |
The minItems vocabulary term as defined in the class DataSchema MUST be serialized as a JSON name. | td-data-schema |
5 | 0 | 28 | 33 |
227.22: td-data-schema_minimum-NumberSchema | Syntax | Y |
NumberSchema |
The minimum vocabulary term as defined in the class DataSchema for numbers MUST be serialized as a JSON name. | td-data-schema |
18 | 0 | 15 | 33 |
227.23: td-data-schema_minimum-IntegerSchema | Syntax | Y |
IntegerSchema |
The minimum vocabulary term as defined in the class DataSchema for integers MUST be serialized as a JSON name. | td-data-schema |
13 | 1 | 19 | 33 |
227.24: td-data-schema_oneOf | Syntax | Y |
DataSchema |
The oneOf vocabulary term as defined in the class DataSchema for integers MUST be serialized as a JSON name. | td-data-schema |
5 | 0 | 28 | 33 |
227.25: td-data-schema_pattern | Syntax | Y |
StringSchema |
The pattern vocabulary term as defined in the class DataSchema for integers MUST be serialized as a JSON name. | td-data-schema |
2 | 0 | 31 | 33 |
227.26: td-data-schema_properties | Syntax | Y |
ObjectSchema |
The properties vocabulary term as defined in the class DataSchema for integers MUST be serialized as a JSON name. | td-data-schema |
23 | 0 | 10 | 33 |
227.27: td-data-schema_readOnly | Syntax | Y |
DataSchema |
The readOnly vocabulary term as defined in the class DataSchema for integers MUST be serialized as a JSON name. | td-data-schema |
24 | 0 | 9 | 33 |
227.28: td-data-schema_required | Syntax | Y |
DataSchema |
The required vocabulary term as defined in the class DataSchema for integers MUST be serialized as a JSON name. | td-data-schema |
9 | 0 | 24 | 33 |
227.29: td-data-schema_title | Syntax | Y |
DataSchema |
The title vocabulary term as defined in the class DataSchema for integers MUST be serialized as a JSON name. | td-data-schema |
24 | 0 | 9 | 33 |
227.30: td-data-schema_titles | Syntax | Y |
DataSchema |
The titles vocabulary term as defined in the class DataSchema for integers MUST be serialized as a JSON name. | td-data-schema |
6 | 0 | 27 | 33 |
227.31: td-data-schema_type | Syntax | Y |
DataSchema |
The type vocabulary term as defined in the class DataSchema for integers MUST be serialized as a JSON name. | td-data-schema |
32 | 1 | 0 | 33 |
227.32: td-data-schema_unit | Syntax | Y |
DataSchema |
The unit vocabulary term as defined in the class DataSchema for integers MUST be serialized as a JSON name. | td-data-schema |
14 | 0 | 19 | 33 |
227.33: td-data-schema_writeOnly | Syntax | Y |
DataSchema |
The writeOnly vocabulary term as defined in the class DataSchema for integers MUST be serialized as a JSON name. | td-data-schema |
14 | 0 | 19 | 33 |
228: td-data-schema-objects | Syntax | Y |
DataSchema |
The value assigned to properties in an instance of ObjectSchema MUST be serialized as a JSON object. | td-data-schema |
23 | 0 | 10 | 33 |
229: td-data-schema-arrays | Syntax | Y |
DataSchema |
The values assigned to enum, required, and oneOf in an instance of DataSchema MUST be serialized as a JSON array. | td-data-schema |
5 | 0 | 28 | 33 |
229.01: td-data-schema-arrays_enum | Syntax | Y |
DataSchema |
The value of the member enum MUST be serialized as a JSON array with a DataSchema object. | td-data-schema-arrays |
13 | 0 | 20 | 33 |
229.02: td-data-schema-arrays_oneOf | Syntax | Y |
DataSchema |
The value of the member oneOf MUST be serialized as a JSON array with a DataSchema object. | td-data-schema-arrays |
5 | 0 | 28 | 33 |
229.03: td-data-schema-arrays_required | Syntax | Y |
DataSchema |
The value of the member required MUST be serialized as a JSON array with a DataSchema object. | td-data-schema-arrays |
9 | 0 | 24 | 33 |
230: td-data-schema-objects-arrays | Syntax | Y |
DataSchema |
The value assigned to items in an instance of ArraySchema MUST be serialized as a JSON object or a JSON array containing JSON objects. | td-data-schema |
9 | 0 | 24 | 33 |
245: tm-identification | Model | Y | (Model) |
Thing Model definitions MUST use the keyword @type at top level and a value of type string or array that equals or respectively contains tm:ThingModel. | thing-model |
6 | 0 | 0 | 6 |
246: tm-context-requirement | Model | Y |
(Model) (Context) |
Additionally, in order to identify it as a JSON-LD document, Thing Model definitions MUST use the keyword @context at top level with same rules as a Thing Description. | thing-model |
7 | 0 | 0 | 7 |
247: tm-protocol-security-restriction | Model | N | (Model) |
A Thing Model MAY NOT contain instance specific Protocol Binding and security information such as endpoint addresses. | thing-model |
7 | 0 | 0 | 7 |
249: tm-versioning-2 | Y | Due to the definition of Thing Model the term instance MUST be omitted within the version container. | 5 | 0 | 1 | 6 | |||
250: tm-extend | Model | Y | (Model) |
When a Thing Model extends another Thing Model, at least one links entry with "rel": "tm:extends" that targets a Thing Model that is be extended MUST be used. | thing-model |
2 | 0 | 4 | 6 |
253: tm-tmRef-usecase | Model | N | (Model) |
For importing pieces of definitions of one or more existing Thing Models, the tm:ref term is introduced that provides the location of an existing (sub-)definition that SHOULD be reused. | thing-model |
3 | 0 | 4 | 7 |
254: tm-tmRef1 | Model | Y | (Model) |
The tm:ref value MUST follow the pattern that starts with the file location as URI [RFC3986](Section 4.1)), followed by # character, and followed by JSON Pointer [RFC6901] definition. | thing-model |
2 | 0 | 4 | 6 |
260: tm-compose-submodel | Model | Y | (Model) |
If it is desired to provide information that a Thing Model consists of one or more (sub-)Thing Models, the links entries MUST use the "rel": "tm:submodel" that targets to the (sub-) Thing Models. | thing-model |
3 | 0 | 4 | 7 |
261: tm-compose-instanceName | Model | N | (Model) |
Optionally an instanceName MAY be provided to associate an individual name to the composed (sub-) Thing Model. | thing-model |
3 | 0 | 4 | 7 |
262: tm-compose-name-collision | Model | Y | (Model) |
Thereby the generation process MUST avoid possible name collisions. | thing-model |
5 | 0 | 29 | 34 |
263: tm-tmOptional | Y | If interaction models are not mandatory to be implemented in a Thing Description instance, Thing Model definitions MUST use the JSON member name tm:optional. | 2 | 0 | 4 | 6 | |||
264: tm-tmOptional-array | Y | tm:optional MUST be a JSON array at the top level. | 2 | 0 | 4 | 6 | |||
265: tm-tmOptional-JSONPointer | Y | The value of tm:optional MUST provide JSON Pointer [RFC6901] references to the required interaction model definitions. | 2 | 0 | 4 | 6 | |||
266: tm-tmOptional-resolver | Y | The JSON Pointers of tm:optional MUST resolve to an entire interaction affordance Map definition. | 2 | 0 | 4 | 6 | |||
267: tm-placeholder-usecase | Model | N | (Model) |
In a case where TD instance terms, but not their values, are known in advance, the placeholder labeling MAY be used in a Thing Model. | thing-model |
4 | 0 | 3 | 7 |
269: tm-placeholder | Model | Y | (Model) |
The string-based pattern of the placeholder MUST follow a valid pattern based on the regular expression {{2}[ -~]+}{2} (e.g., {{PLACEHOLDER_IDENTIFIER}}). The characters between {{ and }} are used as identifier name of the placeholder. The identifier name can be used to identify the placeholder for the substitution process. | thing-model |
2 | 0 | 4 | 6 |
270: tm-placeholder-value | Model | Y | (Model) |
A placeholder MUST be applied within the value of the JSON name-value pair. | thing-model |
6 | 0 | 0 | 6 |
271: tm-placeholder-retyping | Model | Y | (Model) |
If a non string-based value of a JSON name-value pair has a placeholder, the value MUST be (temporarily) typed as string. | thing-model |
5 | 0 | 3 | 8 |
272: tm-td-generation-inconsistencies | Model | Y | (Model) |
A Thing Model MUST be defined in such a way that there are no inconsistencies that would result in a Thing Description not being able to meet the requirements as described in Section 5. TD Information Model and 6. TD Representation Format. | thing-model |
6 | 0 | 0 | 6 |
273: thing-model-td-generation-processor-imports | Y | Copy all definitions from the input Thing Model to the resulting Partial TD instance. If used, the extension and imports feature MUST be resolved and represented in the Partial TD instance according to 9.3.2 Extension and Import. | 3 | 1 | 28 | 32 | |||
275: thing-model-td-generation-processor-type | Y | The tm:ThingModel value of the top-level @type MUST be removed in the Partial TD instance. | 3 | 1 | 28 | 32 | |||
277: thing-model-td-generation-processor-optional | N | All optional interactions (listed in tm:optional) MAY be taken over to the Partial TD instance. | 2 | 0 | 29 | 31 | |||
280: tm-rel-type-maximum | Model | Y | (Model) |
The links array MUST use the entry with "rel": "type" a maximum of once. | thing-model |
3 | 0 | 30 | 33 |
284: sec-vuln-auto | Security | N | The auto security scheme MAY be used if vulnerability scanning is a concern. | 2 | 0 | 31 | 33 | ||
293: privacy-id-metadata | Privacy | N | The value of the id of a TD SHOULD NOT contain metadata describing the Thing or from the TD itself. | 9 | 1 | 25 | 35 | ||
295: privacy-distributed-ids | Privacy | N | TD identifiers SHOULD be generated using a distributed mechanism such as UUIDs that provides a high probability of uniqueness. | 9 | 0 | 24 | 33 |
The following assertions have been manually validated by the implementers.
ID | Category | Req | Context | Assertion | Parent | Results | |||
---|---|---|---|---|---|---|---|---|---|
P | F | N | T | ||||||
26: td-context-ns-td10-namespacev10 | Context | Y | TD 1.1 consumers MUST accept TDs satisfying the W3C WoT Thing Description 1.0 [wot-thing-description10] specification. | 2 | 0 | 1 | 3 | ||
30: td-processor-bidi-isolation | N | TD Processors SHOULD take care to use bidi isolation when presenting strings to users, particularly when embedding in surrounding text (e.g., for Web user interface) | 2 | 0 | 0 | 2 | |||
31: td-producer-mixed-direction | N | TD producers SHOULD attempt to provide mixed direction strings in a way that can be displayed successfully by a naive user agent. | 2 | 0 | 0 | 2 | |||
72: td-format-validation-other-values | Syntax | N |
DataSchema |
When a value that is not found in the known set of values is assigned to format, such a validation SHOULD succeed. | td-data-schema |
5 | 0 | 7 | 12 |
94: td-security-no-secrets | Security | Y | For all security schemes, any keys, passwords, or other sensitive information directly providing access MUST NOT be stored in the TD and should instead be shared and stored out-of-band via other mechanisms. | 9 | 0 | 0 | 9 | ||
96: sec-body-name-json-pointer-creatable | Security | Y | When an element of a data schema indicated by a JSON pointer indicated in a body locator does not already exist in the indicated schema, it MUST be possible to insert the indicated element at the location indicated by the pointer. | 2 | 0 | 2 | 4 | ||
98: sec-body-name-json-pointer-type | Security | Y | The element referenced (or created) by a body security information location MUST be required and of type "string". | 2 | 0 | 1 | 3 | ||
99: td-security-in-query-over-uri | Security | N | The value uri SHOULD be specified for the name in in a security scheme only if query is not applicable. | 2 | 0 | 31 | 33 | ||
149: td-expectedResponse-default-contentType | Default | Y |
ActionAffordance Form |
If no response name-value pair is provided, it MUST be assumed that the content type of the response is equal to the content type assigned to the Form instance. |
td-serialization-default-values |
8 | 0 | 4 | 12 |
157: td-vocabulary-defaults | Vocabulary | Y |
Thing |
When assignments in a TD are missing, a TD Processor MUST follow the Default Value assignments expressed in the table of Default Value Definitions. | td-vocabulary |
18 | 0 | 0 | 18 |
158: td-default-readOnly | Default | Y |
PropertyAffordance DataSchema |
The value associated with member "readOnly" if not given MUST be assumed to have the default value "false". |
td-serialization-default-values |
17 | 0 | 2 | 19 |
159: td-default-writeOnly | Default | Y |
PropertyAffordance DataSchema |
The value associated with member "writeOnly" if not given MUST be assumed to have the default value "false". |
td-serialization-default-values |
16 | 0 | 3 | 19 |
160: td-default-observable | Default | Y |
PropertyAffordance |
The value associated with member "observable" if not given MUST be assumed to have the default value "false". |
td-serialization-default-values |
11 | 0 | 0 | 11 |
161: td-default-safe | Default | Y |
ActionAffordance |
The value associated with member "safe" if not given MUST be assumed to have the default value "false". |
td-serialization-default-values |
8 | 0 | 8 | 16 |
162: td-default-idempotent | Default | Y |
ActionAffordance |
The value associated with member "idempotent" if not given MUST be assumed to have the default value "false". |
td-serialization-default-values |
10 | 0 | 8 | 18 |
163: td-default-success | Default | Y |
AdditionalExpectedResponse |
The value associated with member "success" if not given MUST be assumed to have the default value "false". |
td-serialization-default-values |
4 | 0 | 4 | 8 |
164: td-default-AdditionalResponseContentType | Default | Y |
AdditionalExpectedResponse |
The value associated with member "contentType" if not given MUST be assumed to have the default value "value of the contentType of the Form element it belongs to.". |
td-serialization-default-values |
3 | 0 | 5 | 8 |
165: td-default-contentType | Default | Y |
Form |
The value associated with member "contentType" if not given MUST be assumed to have the default value "application/json". |
td-serialization-default-values |
15 | 0 | 3 | 18 |
166: td-default-op-properties | Default | Y |
Form |
The value associated with member "op" if not given MUST be assumed to have the default value " Array of string with the elements readproperty and writeproperty when readOnly and writeOnly are set to false or Array of string with the element readproperty when readOnly is set to true or Array of string with the element writeproperty when writeOnly is set to true. ". |
td-serialization-default-values |
13 | 0 | 5 | 18 |
167: td-default-op-actions | Default | Y |
Form |
The value associated with member "op" if not given MUST be assumed to have the default value "invokeaction". |
td-serialization-default-values |
10 | 0 | 7 | 17 |
168: td-default-op-events | Default | Y |
Form |
The value associated with member "op" if not given MUST be assumed to have the default value " Array of string with the elements subscribeevent and unsubscribeevent ". |
td-serialization-default-values |
7 | 0 | 8 | 15 |
169: td-default-in-basic | Default | Y |
BasicSecurityScheme |
The value associated with member "in" if not given MUST be assumed to have the default value "header". |
td-serialization-default-values |
7 | 0 | 6 | 13 |
170: td-default-in-digest | Default | Y |
DigestSecurityScheme |
The value associated with member "in" if not given MUST be assumed to have the default value "header". |
td-serialization-default-values |
6 | 0 | 6 | 12 |
171: td-default-qop | Default | Y |
DigestSecurityScheme |
The value associated with member "qop" if not given MUST be assumed to have the default value "auth". |
td-serialization-default-values |
6 | 0 | 6 | 12 |
172: td-default-in-apikey | Default | Y |
APIKeySecurityScheme |
The value associated with member "in" if not given MUST be assumed to have the default value "query". |
td-serialization-default-values |
5 | 0 | 7 | 12 |
173: td-default-in-bearer | Default | Y |
BearerSecurityScheme |
The value associated with member "in" if not given MUST be assumed to have the default value "header". |
td-serialization-default-values |
8 | 0 | 5 | 13 |
174: td-default-alg | Default | Y |
BearerSecurityScheme |
The value associated with member "alg" if not given MUST be assumed to have the default value "ES256". |
td-serialization-default-values |
9 | 0 | 4 | 13 |
175: td-default-format | Default | Y |
BearerSecurityScheme |
The value associated with member "format" if not given MUST be assumed to have the default value "jwt". |
td-serialization-default-values |
7 | 0 | 6 | 13 |
176: td-processor-serialization | Syntax | Y | (TD Processor) |
A TD Processor MUST be able to serialize Thing Descriptions into the JSON format [RFC8259] and/or deserialize Thing Descriptions from that format, according to the rules noted in 6.1 Mapping to JSON Types and 6.3 Information Model Serialization. | 13 | 0 | 0 | 13 | |
177: td-json-open | Syntax | Y |
Thing |
TDs MUST be serialized according to the requirements defined in Section 8.1 of RFC8259 [RFC8259] for open ecosystems. | 9 | 0 | 5 | 14 | |
177.02: td-json-open_no-byte-order | Syntax | Y |
Thing |
Implementations MUST NOT add a byte order mark (U+FEFF) to the beginning of a TD document. | td-json-open |
15 | 0 | 0 | 15 |
177.03: td-json-open_accept-byte-order | Syntax | N |
Thing |
TD Processors MAY ignore the presence of a byte order mark rather than treating it as an error. | td-json-open |
9 | 0 | 5 | 14 |
192: td-context-default-language-direction-independence | Language | Y | (TD Consumer) |
However, when interpreting human-readable text, each human-readable string value MUST be processed independently. | 5 | 0 | 6 | 11 | |
194: td-text-direction-first-strong | Language | N | When metadata such as @direction is not present, TD Consumers SHOULD use first-strong detection as a fallback. | 2 | 0 | 1 | 3 | ||
195: td-text-direction-language-tag | Language | N | For the MultiLanguage Map, TD Consumers MAY infer the base direction from the language tag of the individual strings. | 2 | 0 | 1 | 3 | ||
200: td-ns-multilanguage-content-negotiation | Behavior | Y | (TD Producer) |
In cases where the default language has been negotiated, an @language member MUST be present to indicate the result of the negotiation and the corresponding default language of the returned content. | 3 | 0 | 8 | 11 | |
201: td-ns-multilanguage-content-negotiation-no-multi | Behavior | N | (TD Producer) |
When the default language has been negotiated successfully, TD documents SHOULD include the appropriate matching values for the members title and description in preference to MultiLanguage objects in titles and descriptions members. | 2 | 0 | 8 | 10 | |
202: td-ns-multilanguage-content-negotiation-optional | Behavior | N | (TD Producer) |
Note however that Things MAY choose to not support such dynamically-generated TDs nor to support language negotiation (e.g., because of resource constraints). | 3 | 0 | 6 | 9 | |
222: td-form-protocolbindings | Syntax | N |
Form |
If required, form objects MAY be supplemented with protocol-specific Vocabulary Terms identified with a prefix. | td-forms |
11 | 0 | 2 | 13 |
231: td-security-extension | Security | Y | Additional security schemes MUST be Subclasses of the Class SecurityScheme. | 3 | 0 | 0 | 3 | ||
232: td-security-binding | Behavior | Y |
Thing |
If a Thing requires a specific access mechanism for an interaction, that mechanism MUST be specified in the security configuration of the Thing Description. | td-security |
27 | 0 | 10 | 37 |
233: td-security-no-extras | Behavior | Y |
Thing |
If a Thing does not require a specific access mechanism for an interaction, that mechanism MUST NOT be specified in the security configuration of the Thing Description. | td-security |
10 | 0 | 1 | 11 |
234: client-data-schema | Behavior | Y | (TD Consumer) |
A Consumer when interacting with another target Thing described in a WoT Thing Description MUST generate data organized according to the data schemas given in the corresponding interactions. | 5 | 0 | 4 | 9 | |
235: server-data-schema | Behavior | Y | (TD Producer) |
A WoT Thing Description MUST accurately describe the data returned and accepted by each interaction. | 18 | 0 | 0 | 18 | |
236: server-data-schema-extras | Behavior | N | (TD Producer) |
A Thing MAY return additional data from an interaction even when such data is not described in the data schemas given in its WoT Thing Description. | 5 | 1 | 7 | 13 | |
237: client-data-schema-accept-extras | Behavior | Y | (TD Consumer) |
A Consumer when interacting with another Thing MUST accept without error any additional data not described in the data schemas given in the Thing Description of the target Thing. | 3 | 2 | 4 | 9 | |
238: client-data-schema-no-extras | Behavior | Y | (TD Consumer) |
A Consumer when interacting with another Thing MUST NOT generate data not described in the data schemas given in the Thing Description of that Thing. | 3 | 1 | 5 | 9 | |
239: client-uri-template | Behavior | Y | (TD Consumer) |
A Consumer when interacting with another Thing MUST generate URIs according to the URI Templates, base URIs, and form href parameters given in the Thing Description of the target Thing. | 4 | 0 | 5 | 9 | |
240: server-uri-template | Behavior | Y | (TD Producer) |
URI Templates, base URIs, and href members in a WoT Thing Description MUST accurately describe the WoT Interface of the Thing. | 13 | 0 | 5 | 18 | |
241: bindings-requirements-scheme | Behavior | Y |
Form |
Every form in a WoT Thing Description MUST follow the requirements of the Protocol Binding indicated by the URI scheme [RFC3986] of its href member. | 18 | 0 | 1 | 19 | |
242: bindings-server-accept | Behavior | Y | (TD Producer) |
Every form in a WoT Thing Description MUST accurately describe requests (including request headers, if present) accepted by the Thing in an interaction. | 16 | 0 | 1 | 17 | |
243: td-default-http-method | Default | Y |
Form |
When no method is indicated in a form representing an Protocol Binding based on HTTP, a Default Value MUST be assumed as shown in the following table. |
td-serialization-default-values |
11 | 0 | 5 | 16 |
243.01: td-default-http-method_get | Default | Y |
htv:methodName |
The value associated with member "GET" if not given MUST be assumed to have the default value "Form with operation type readproperty, readallproperties, readmultipleproperties". |
td-serialization-default-values |
12 | 0 | 4 | 16 |
243.02: td-default-http-method_put | Default | Y |
htv:methodName |
The value associated with member "PUT" if not given MUST be assumed to have the default value "Form with operation type writeproperty, writeallproperties, writemultipleproperties". |
td-serialization-default-values |
11 | 0 | 4 | 15 |
243.03: td-default-http-method_post | Default | Y |
htv:methodName |
The value associated with member "POST" if not given MUST be assumed to have the default value "Form with operation type invokeaction". |
td-serialization-default-values |
11 | 0 | 5 | 16 |
244: tm-derivation-validity | N | When a Thing Descriptions is instantiated by relying on a Thing Model, it SHOULD be valid according to that Thing Model. | 2 | 0 | 0 | 2 | |||
248: tm-versioning-1 | N | When the Thing Model definitions change over time, this SHOULD be reflected in the version container. | 2 | 0 | 2 | 4 | |||
251: tm-overwrite-interaction | Model | N | (Model) |
A Thing Model SHOULD NOT overwrite the JSON names defined within the properties, actions, and/or events Map of the extended Thing Model. | thing-model |
3 | 0 | 1 | 4 |
252: tm-overwrite-types | Model | N | (Model) |
Definitions SHOULD NOT be overwritten in such a way that possible instance values are no longer valid compared to the origin extended definitions. | thing-model |
3 | 0 | 2 | 5 |
255: tm-tmRef2 | Model | Y | (Model) |
Every time tm:ref is used, the referenced pre-definition and its dependencies (e.g., by context extension) MUST be assumed at the new defined definition. | thing-model |
2 | 0 | 2 | 4 |
256: tm-tmRef-overwrite-possibility | Model | Y | (Model) |
If the intention is to override an existing JSON name-value pair definition from tm:ref, the same JSON name MUST be used at the same level of the tm:ref declaration that provides a new value. | thing-model |
3 | 0 | 0 | 3 |
257: tm-tmRef-overwrite-process | Model | Y | (Model) |
The process to overwrite MUST follow the JSON Merge Patch algorithm as defined in [RFC7396] where the content of the referenced definition is patched with the new provided JSON name-value pairs. | thing-model |
3 | 0 | 0 | 3 |
258: tm-tmRef-overwrite-semantic-meaning | Model | N | (Model) |
Similar to tm:extends and to keep the semantic meaning, definitions SHOULD NOT be overwritten in such a way that possible instance values are no longer valid compared to the origin referenced definition. | thing-model |
2 | 0 | 2 | 4 |
259: tm-ref-recursive-extensions | Model | Y | (Model) |
Recursive extensions leading to an infinite loop MUST NOT be defined. | thing-model |
5 | 0 | 0 | 5 |
268: tm-placeholder-replacement | Model | Y | (Model) |
The placeholder labeling MUST be substituted with a concrete value (e.g., as JSON number, JSON string, JSON object, etc) when TD instance is created from the Thing Model. | thing-model |
5 | 0 | 0 | 5 |
274: thing-model-td-generation-processor-extends | Y | If used, links element entry with "rel":"tm:extends" MUST be removed from the current Partial TD | 3 | 1 | 0 | 4 | |||
276: thing-model-td-generation-processor-required | Y | All required interactions (not listed in tm:optional) MUST be taken over to the Partial TD instance. | 3 | 1 | 0 | 4 | |||
278: thing-model-td-generation-processor-placeholder | Y | If used, all placeholders (see Section 9.3.5 Placeholder) in the Thing Model MUST be replaced with a valid corresponding value in the Partial TD. | 4 | 0 | 0 | 4 | |||
279: thing-model-td-generation-processor-forms | Y | Missing communication and/or security metadata details MUST be completed in the Thing Description instance based on Section 6.3.4 securityDefinitions and security and/or 6.3.9 forms. | 3 | 0 | 1 | 4 | |||
281: security-mutual-auth-td | Security | N | Thing Descriptions SHOULD be obtained only through mutually authenticated secure channels. | 2 | 0 | 5 | 7 | ||
282: security-server-auth-td | Security | N | In cases where the Consumer is associated with a person, e.g. browsers, TDs MAY be obtained through a channel where only the TD provider is authenticated. | 3 | 0 | 1 | 4 | ||
283: security-oauth-limits | Security | N | To limit the scope and duration of access to Things, tokens SHOULD be used to manage access. | 2 | 0 | 1 | 3 | ||
285: sec-inj-no-intl-markup | Security | N | HTML markup SHOULD NOT be used for internationalization purposes in TD strings. | 2 | 0 | 1 | 3 | ||
286: security-no-execution | Security | Y | A WoT Thing Description JSON-LD serialization MUST NOT be passed through a code execution mechanism such as JavaScript's eval() function to be parsed. | 5 | 0 | 0 | 5 | ||
287: security-jsonld-expansion | Security | N | Consumers SHOULD set and enforce limits on memory usage to prevent buffer overflow and resource exhaustion during JSON-LD processing. | 2 | 0 | 3 | 5 | ||
288: security-static-context | Security | N | Constrained implementations SHOULD use vetted versions of their supported context extensions managed statically or as part of a secure update process. | 2 | 0 | 1 | 3 | ||
289: security-remote-context | Security | N | Constrained implementations SHOULD NOT follow links to remote contexts. | 2 | 0 | 1 | 3 | ||
290: privacy-mutable-identifiers | Privacy | N | All identifiers used in a TD SHOULD be mutable, and in particular there SHOULD be a mechanism to update the id of a Thing when necessary. | 3 | 0 | 1 | 4 | ||
291: privacy-auth-users-only | Privacy | N | Only authorized users SHOULD be provided access to the Thing Description for a Thing. | 3 | 0 | 2 | 5 | ||
292: privacy-essential-metadata-only | Privacy | N | Only the amount of information needed for the level of authorization and the use case SHOULD be provided in a TD. | 3 | 0 | 1 | 4 | ||
294: privacy-temp-id-metadata | Privacy | N | Any temporary ID generated to manage TDs, for example an ID for a database or directory service, SHOULD NOT contain metadata describing the Thing or from the TD itself. | 2 | 0 | 1 | 3 | ||
296: privacy-centralized-ids | Privacy | N | TD identifiers SHOULD NOT be generated using a centralized authority. | 6 | 0 | 0 | 6 |
The Web of Things Working Group would like to acknowledge the contributions to the making of this document from the following individuals in various capacities, including contributions to past testing inputs which were used for compatibility testing: