labthings_fastapi.thing_description._model
Pydantic Models to describe DataSchema.
Thing Description defines a schema for describing Things, using JSONSchema-like syntax for data types. This file contains pydantic models that describe that schema. For the meaning of the various objects, please refer to the td_schema_definition within the W3C standard.
This file was automatically generated, but has been customised to improve the types and simplify/combine objects.
I’ve added URLs to point to the schema documentation. These start with
https://www.w3.org/TR/wot-thing-description11/, meaning they refer to v1.1,
the version current when it was written.
Attributes
Classes
Functions
Check the URLs in the ThingContextType are valid. |
Module Contents
- class labthings_fastapi.thing_description._model.Version(/, **data: Any)
Bases:
pydantic.BaseModelVersion info for a Thing.
See https://www.w3.org/TR/wot-thing-description11/#versioninfo.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.
- labthings_fastapi.thing_description._model.AnyUri
- labthings_fastapi.thing_description._model.Description
- labthings_fastapi.thing_description._model.Descriptions
- labthings_fastapi.thing_description._model.Title
- labthings_fastapi.thing_description._model.Titles
- labthings_fastapi.thing_description._model.Security
- labthings_fastapi.thing_description._model.Scopes
- labthings_fastapi.thing_description._model.TypeDeclaration
- class labthings_fastapi.thing_description._model.Subprotocol(*args, **kwds)
Bases:
enum.EnumHTTP sub-protocols.
- longpoll = 'longpoll'
- websub = 'websub'
- sse = 'sse'
- labthings_fastapi.thing_description._model.THING_CONTEXT_URL = 'https://www.w3.org/2022/wot/td/v1.1'
- labthings_fastapi.thing_description._model.THING_CONTEXT_URL_v1 = 'https://www.w3.org/2019/wot/td/v1'
- labthings_fastapi.thing_description._model.ThingContextType
- labthings_fastapi.thing_description._model.uses_thing_context(v: ThingContextType)
Check the URLs in the ThingContextType are valid.
This function makes
assertstatements, so will fail with an exception if it is not valid. This module is hard coded to use valid URLs, so it is not an expected error.See https://www.w3.org/TR/wot-thing-description11/#thing This refers to the
@contextproperty.- Parameters:
v – the ThingContextType object.
- labthings_fastapi.thing_description._model.ThingContext
- class labthings_fastapi.thing_description._model.Type(*args, **kwds)
Bases:
enum.Enumtypeproperty of a DataSchema.- boolean = 'boolean'
- integer = 'integer'
- number = 'number'
- string = 'string'
- object = 'object'
- array = 'array'
- null = 'null'
- class labthings_fastapi.thing_description._model.DataSchema(/, **data: Any)
Bases:
pydantic.BaseModelBase for several classes describing datatypes.
See https://www.w3.org/TR/wot-thing-description11/#dataschema.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.- oneOf: list[DataSchema] | None = None
- items: DataSchema | List[DataSchema] | None = None
- properties: Mapping[str, DataSchema] | None = None
- model_config
Configuration for the model, should be a dictionary conforming to [
ConfigDict][pydantic.config.ConfigDict].
- class labthings_fastapi.thing_description._model.Response(/, **data: Any)
Bases:
pydantic.BaseModelSee https://www.w3.org/TR/wot-thing-description11/#expectedresponse.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.
- class labthings_fastapi.thing_description._model.PropertyOp(*args, **kwds)
Bases:
enum.Enumopvalues for Forms on Properties.See https://www.w3.org/TR/wot-thing-description11/#propertyaffordance
- readproperty = 'readproperty'
- writeproperty = 'writeproperty'
- observeproperty = 'observeproperty'
- unobserveproperty = 'unobserveproperty'
- class labthings_fastapi.thing_description._model.ActionOp(*args, **kwds)
Bases:
enum.Enumopvalues for Forms on Actions.See https://www.w3.org/TR/wot-thing-description11/#actionaffordance
- invokeaction = 'invokeaction'
- class labthings_fastapi.thing_description._model.EventOp(*args, **kwds)
Bases:
enum.Enumopvalues for Forms on Events.See https://www.w3.org/TR/wot-thing-description11/#eventaffordance
- subscribeevent = 'subscribeevent'
- unsubscribeevent = 'unsubscribeevent'
- class labthings_fastapi.thing_description._model.RootOp(*args, **kwds)
Bases:
enum.Enumopvalues for Forms on Things.See https://www.w3.org/TR/wot-thing-description11/#thing
- readallproperties = 'readallproperties'
- writeallproperties = 'writeallproperties'
- readmultipleproperties = 'readmultipleproperties'
- writemultipleproperties = 'writemultipleproperties'
- labthings_fastapi.thing_description._model.Op
- labthings_fastapi.thing_description._model.OpT
- class labthings_fastapi.thing_description._model.Form(/, **data: Any)
Bases:
pydantic.BaseModel,Generic[OpT]See https://www.w3.org/TR/wot-thing-description11/#form.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.- model_config
Configuration for the model, should be a dictionary conforming to [
ConfigDict][pydantic.config.ConfigDict].
- href: AnyUri
- subprotocol: Subprotocol | None = None
- class labthings_fastapi.thing_description._model.InteractionAffordance(/, **data: Any)
Bases:
pydantic.BaseModelSee https://www.w3.org/TR/wot-thing-description11/#interactionaffordance.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.- model_config
Configuration for the model, should be a dictionary conforming to [
ConfigDict][pydantic.config.ConfigDict].
- uriVariables: Dict[str, DataSchema] | None = None
- class labthings_fastapi.thing_description._model.PropertyAffordance(/, **data: Any)
Bases:
InteractionAffordance,DataSchemaSee https://www.w3.org/TR/wot-thing-description11/#propertyaffordance.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.- forms: List[Form[PropertyOp]] = None
- class labthings_fastapi.thing_description._model.ActionAffordance(/, **data: Any)
Bases:
InteractionAffordanceSee https://www.w3.org/TR/wot-thing-description11/#actionaffordance.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.- input: DataSchema | None = None
- output: DataSchema | None = None
- class labthings_fastapi.thing_description._model.EventAffordance(/, **data: Any)
Bases:
pydantic.BaseModelSee https://www.w3.org/TR/wot-thing-description11/#eventaffordance.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.- subscription: DataSchema | None = None
- data: DataSchema | None = None
- cancellation: DataSchema | None = None
- class labthings_fastapi.thing_description._model.LinkElement(/, **data: Any)
Bases:
pydantic.BaseModelSee https://www.w3.org/TR/wot-thing-description11/#link.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.- model_config
Configuration for the model, should be a dictionary conforming to [
ConfigDict][pydantic.config.ConfigDict].
- href: AnyUri
- labthings_fastapi.thing_description._model.Links
- class labthings_fastapi.thing_description._model.SecuritySchemeEnum(*args, **kwds)
Bases:
enum.EnumSee https://www.w3.org/TR/wot-thing-description11/#securityscheme.
- nosec = 'nosec'
- basic = 'basic'
- digest = 'digest'
- apikey = 'apikey'
- bearer = 'bearer'
- psk = 'psk'
- oauth2 = 'oauth2'
- class labthings_fastapi.thing_description._model.In(*args, **kwds)
Bases:
enum.EnumWhere a parameter is found.
- header = 'header'
- query = 'query'
- body = 'body'
- cookie = 'cookie'
- class labthings_fastapi.thing_description._model.Qop(*args, **kwds)
Bases:
enum.EnumSee https://www.w3.org/TR/wot-thing-description11/#digestsecurityscheme.
- auth = 'auth'
- auth_int = 'auth-int'
- class labthings_fastapi.thing_description._model.Flow(*args, **kwds)
Bases:
enum.EnumSee https://www.w3.org/TR/wot-thing-description11/#oauth2securityscheme.
- code = 'code'
- class labthings_fastapi.thing_description._model.BaseSecurityScheme(/, **data: Any)
Bases:
pydantic.BaseModelSee https://www.w3.org/TR/wot-thing-description11/#securityscheme.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.- scheme: SecuritySchemeEnum
- class labthings_fastapi.thing_description._model.NoSecurityScheme(/, **data: Any)
Bases:
BaseSecuritySchemeSee https://www.w3.org/TR/wot-thing-description11/#nosecurityscheme.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.- scheme: Literal[SecuritySchemeEnum]
- class labthings_fastapi.thing_description._model.NameAndIn(/, **data: Any)
Bases:
pydantic.BaseModelFields used by various security schemas.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.
- class labthings_fastapi.thing_description._model.BasicSecurityScheme(/, **data: Any)
Bases:
BaseSecurityScheme,NameAndInSee https://www.w3.org/TR/wot-thing-description11/#basicsecurityscheme.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.- scheme: Literal[SecuritySchemeEnum]
- class labthings_fastapi.thing_description._model.DigestSecurityScheme(/, **data: Any)
Bases:
BaseSecurityScheme,NameAndInSee https://www.w3.org/TR/wot-thing-description11/#digestsecurityscheme.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.- scheme: Literal[SecuritySchemeEnum]
- class labthings_fastapi.thing_description._model.APISecurityScheme(/, **data: Any)
Bases:
BaseSecurityScheme,NameAndInSee https://www.w3.org/TR/wot-thing-description11/#apisecurityscheme.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.- scheme: Literal[SecuritySchemeEnum]
- class labthings_fastapi.thing_description._model.BearerSecurityScheme(/, **data: Any)
Bases:
BaseSecurityScheme,NameAndInSee https://www.w3.org/TR/wot-thing-description11/#bearersecurityscheme.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.- scheme: Literal[SecuritySchemeEnum]
- class labthings_fastapi.thing_description._model.PskSecurityScheme(/, **data: Any)
Bases:
BaseSecuritySchemeSee https://www.w3.org/TR/wot-thing-description11/#psksecurityscheme.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.- scheme: Literal[SecuritySchemeEnum]
- class labthings_fastapi.thing_description._model.Oauth2SecurityScheme(/, **data: Any)
Bases:
BaseSecuritySchemeSee https://www.w3.org/TR/wot-thing-description11/#oauth2securityscheme.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.- scheme: Literal[SecuritySchemeEnum]
- labthings_fastapi.thing_description._model.SecurityScheme
- class labthings_fastapi.thing_description._model.WotTdSchema16October2019(/, **data: Any)
Bases:
pydantic.BaseModelSee https://www.w3.org/TR/wot-thing-description11/#thing.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.- model_config
Configuration for the model, should be a dictionary conforming to [
ConfigDict][pydantic.config.ConfigDict].
- id: pydantic.AnyUrl | None = None
- title: Title
- properties: Dict[str, PropertyAffordance] | None = None
- actions: Dict[str, ActionAffordance] | None = None
- events: Dict[str, EventAffordance] | None = None
- links: Links = None
- created: datetime.datetime | None = None
- modified: datetime.datetime | None = None
- field_context: ThingContext = None
- labthings_fastapi.thing_description._model.ThingDescription