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) None
Check the URLs in the ThingContextType are valid.
This function checks a valid context URL is provided. See the JSONSchema for Thing Description (
td-json-schema-validation.json) for more details.See https://www.w3.org/TR/wot-thing-description11/#thing Specifically, the
@contextproperty is what this function validates.- Parameters:
v – the ThingContextType object.
- Raises:
ValueError – if the URL is not correct.
- 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: labthings_fastapi.middleware.url_for.URLFor | 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: labthings_fastapi.middleware.url_for.URLFor | 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
- base: labthings_fastapi.middleware.url_for.URLFor | AnyUri | None = None
- created: datetime.datetime | None = None
- modified: datetime.datetime | None = None
- field_context: ThingContext = None
- labthings_fastapi.thing_description._model.ThingDescription