Skip to content

Metaschema

Descriptions of the free-form data object in a device's metadata — not of the values a device reports, which the schema module covers. Each key gets a label, one of four value kinds (number, string, boolean, datetime), and optional unit, range and enum, so a UI can render a form rather than a JSON editor. A schema is either the tenant's shared one, covering all its devices, or describes one service and applies to every device exposing it.

The metadata itself lives in the meta module. Changes are pushed as META_SCHEMA_CREATE, META_SCHEMA_UPDATE and META_SCHEMA_DELETE over the websocket; the writing side is covered by Metadata.

POSTCreate a meta schema/api/v1/meta-schema
GETList meta schemas/api/v1/meta-schema
GETResolve schemas of a device/api/v1/meta-schema/device/:deviceId
GETRead one meta schema/api/v1/meta-schema/:schemaId
PATCHUpdate a meta schema/api/v1/meta-schema/:schemaId
DELETEDelete a meta schema/api/v1/meta-schema/:schemaId

Create a meta schema

Describes the metadata of one service, or — with shared: true — of every device in the tenant; exactly one of the two. Each slot holds at most one schema, so a second schema for the same service, or a second shared one, is rejected.

POST/api/v1/meta-schema

Body

NameDescription
namestringHuman-readable name of the schema.
min length 1 · max length 64
descriptionstringoptionalWhat the described metadata is about, for readers of the schema.
propertiesarrayThe metadata keys this schema describes, unique by key.
keystringThe key this property occupies in the device's metadata object.
min length 1 · max length 64
namestringLabel shown instead of the raw key.
min length 1 · max length 64
descriptionstringoptionalWhat the property means.
typeenumKind of value behind the key: number, string, boolean or datetime — the JSON kinds metadata accepts, not the wire types of a device property.
Possible values: number, string, boolean, datetime
enumarrayoptionalNamed values, unique by value — lets a UI offer a dropdown instead of a free-text field.
valuestringThe raw value as it is stored in the metadata.
min length 1
namestringLabel shown for the value.
min length 1 · max length 64
descriptionstringoptionalWhat the value means.
i18ndictionaryoptionalTranslations of the label, keyed by locale.
namestringoptionalTranslated name.
min length 1 · max length 64
descriptionstringoptionalTranslated description.
rangeMinnumberoptionalMinimum (inclusive); numeric properties only.
rangeMaxnumberoptionalMaximum (exclusive); numeric properties only.
stepnumberoptionalStep an input field should offer; numeric properties only.
unitstringoptionalUnit label, e.g. m.
groupstringoptionalGroups properties into subjects for presentation.
tagbooleanoptionalUI hint: render the value as a tag rather than a plain field.
i18ndictionaryoptionalTranslations of name, description and group, keyed by locale.
namestringoptionalTranslated name.
min length 1 · max length 64
descriptionstringoptionalTranslated description.
groupstringoptionalTranslated group label.
i18ndictionaryoptionalTranslations of the schema's name and description, keyed by locale; a field left out falls back to the untranslated value. The whole map is served — the consumer picks the locale.
namestringoptionalTranslated name.
min length 1 · max length 64
descriptionstringoptionalTranslated description.
sharedbooleanoptionalMakes this the tenant's shared schema, applying to all of its devices; exactly one of shared and serviceIdentifier may be set.
Default: false
serviceIdentifierstringoptionalThe service whose metadata this schema describes — it then applies to every device exposing that service. Left out for the shared schema.
Pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
tenantIdstringoptionalWhich tenant the schema is created in. Only needed when the caller's access spans several tenants — without it the call is refused as ambiguous.
Pattern: ^[0-9A-HJ-NP-Za-km-z]{9,16}$

Response

NameDescription
resourceIdentifierstringUnique Coldwave resource name (CRN) that identifies a resource

Errors

StatusDescriptionBody
403You do not have permission to perform this action
409A tenant with the given name already existscode: IAM_TENANT_CONFLICT_ERROR
409A meta schema with this id already exists in the tenant — patch the existing one instead of creating it again.
400The request did not match the schema for this endpoint. The details field carries the specific failures.error: Validation Error
401No valid access token was presented, or the DPoP proof accompanying it was missing, expired or bound to a different key.error: string
500The request failed for a reason that is not the caller's to fix. Safe to retry.error: string, message: string, statusCode: 50

List meta schemas

Lists the schemas stored in the tenant — the shared one and one per service; depth=1 adds the full entries. Which of them apply to a given device is answered by /meta-schema/device/{deviceId}.

GET/api/v1/meta-schema?depth=0

Query Parameters

NameDescription
depthintegeroptionalHow many levels of nested resources the response includes; 0 returns only the top level.
Default: 0
min 0

Response

NameDescription
idstringResource id: Base58 (9–10 characters) or a 16-character Crockford snowflake. Not an RFC 4122 UUID.
Pattern: ^[0-9A-HJ-NP-Za-km-z]{9,16}$
resourceIdentifierstringUnique Coldwave resource name (CRN) that identifies a resource
sharedbooleanWhether this is the tenant's shared schema, which applies to all of its devices.
serviceIdentifierstringoptionalThe service whose metadata this schema describes; absent on the shared schema.
Pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
schemaobjectoptionaldepth ≥ 1The full schema entry; included at depth ≥ 1.
namestringHuman-readable name of the schema.
min length 1 · max length 64
descriptionstringoptionalWhat the described metadata is about, for readers of the schema.
propertiesarrayThe metadata keys this schema describes, unique by key.
keystringThe key this property occupies in the device's metadata object.
min length 1 · max length 64
namestringLabel shown instead of the raw key.
min length 1 · max length 64
descriptionstringoptionalWhat the property means.
typeenumKind of value behind the key: number, string, boolean or datetime — the JSON kinds metadata accepts, not the wire types of a device property.
Possible values: number, string, boolean, datetime
enumarrayoptionalNamed values, unique by value — lets a UI offer a dropdown instead of a free-text field.
valuestringThe raw value as it is stored in the metadata.
min length 1
namestringLabel shown for the value.
min length 1 · max length 64
descriptionstringoptionalWhat the value means.
i18ndictionaryoptionalTranslations of the label, keyed by locale.
namestringoptionalTranslated name.
min length 1 · max length 64
descriptionstringoptionalTranslated description.
rangeMinnumberoptionalMinimum (inclusive); numeric properties only.
rangeMaxnumberoptionalMaximum (exclusive); numeric properties only.
stepnumberoptionalStep an input field should offer; numeric properties only.
unitstringoptionalUnit label, e.g. m.
groupstringoptionalGroups properties into subjects for presentation.
tagbooleanoptionalUI hint: render the value as a tag rather than a plain field.
i18ndictionaryoptionalTranslations of name, description and group, keyed by locale.
namestringoptionalTranslated name.
min length 1 · max length 64
descriptionstringoptionalTranslated description.
groupstringoptionalTranslated group label.
i18ndictionaryoptionalTranslations of the schema's name and description, keyed by locale; a field left out falls back to the untranslated value. The whole map is served — the consumer picks the locale.
namestringoptionalTranslated name.
min length 1 · max length 64
descriptionstringoptionalTranslated description.
idstringResource id: Base58 (9–10 characters) or a 16-character Crockford snowflake. Not an RFC 4122 UUID.
Pattern: ^[0-9A-HJ-NP-Za-km-z]{9,16}$
resourceIdentifierstringUnique Coldwave resource name (CRN) that identifies a resource
sharedbooleanWhether this is the tenant's shared schema, which applies to all of its devices.
serviceIdentifierstringoptionalThe service whose metadata this schema describes; absent on the shared schema.
Pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
createdBystringResource identifier of the entity that created this resource

Errors

StatusDescriptionBody
403You do not have permission to perform this action
409A tenant with the given name already existscode: IAM_TENANT_CONFLICT_ERROR
400The request did not match the schema for this endpoint. The details field carries the specific failures.error: Validation Error
401No valid access token was presented, or the DPoP proof accompanying it was missing, expired or bound to a different key.error: string
500The request failed for a reason that is not the caller's to fix. Safe to retry.error: string, message: string, statusCode: 50

Resolve schemas of a device

The schemas describing one device's metadata: the tenant's shared schema plus one per service the device exposes — no joining the service list against the schema list. {deviceId} accepts the device id or the IMEI; the array is empty when no schema applies to the device.

GET/api/v1/meta-schema/device/Yk3pL7rWq2

Path Parameters

NameDescription
deviceIdDevice id or IMEI.
Alternative 1stringResource id: Base58 (9–10 characters) or a 16-character Crockford snowflake. Not an RFC 4122 UUID.
Pattern: ^[0-9A-HJ-NP-Za-km-z]{9,16}$
Alternative 2stringDevice id or IMEI.
max length 16
Pattern: ^[0-9a-fA-F]+$

Response

NameDescription
namestringHuman-readable name of the schema.
min length 1 · max length 64
descriptionstringoptionalWhat the described metadata is about, for readers of the schema.
propertiesarrayThe metadata keys this schema describes, unique by key.
keystringThe key this property occupies in the device's metadata object.
min length 1 · max length 64
namestringLabel shown instead of the raw key.
min length 1 · max length 64
descriptionstringoptionalWhat the property means.
typeenumKind of value behind the key: number, string, boolean or datetime — the JSON kinds metadata accepts, not the wire types of a device property.
Possible values: number, string, boolean, datetime
enumarrayoptionalNamed values, unique by value — lets a UI offer a dropdown instead of a free-text field.
valuestringThe raw value as it is stored in the metadata.
min length 1
namestringLabel shown for the value.
min length 1 · max length 64
descriptionstringoptionalWhat the value means.
i18ndictionaryoptionalTranslations of the label, keyed by locale.
namestringoptionalTranslated name.
min length 1 · max length 64
descriptionstringoptionalTranslated description.
rangeMinnumberoptionalMinimum (inclusive); numeric properties only.
rangeMaxnumberoptionalMaximum (exclusive); numeric properties only.
stepnumberoptionalStep an input field should offer; numeric properties only.
unitstringoptionalUnit label, e.g. m.
groupstringoptionalGroups properties into subjects for presentation.
tagbooleanoptionalUI hint: render the value as a tag rather than a plain field.
i18ndictionaryoptionalTranslations of name, description and group, keyed by locale.
namestringoptionalTranslated name.
min length 1 · max length 64
descriptionstringoptionalTranslated description.
groupstringoptionalTranslated group label.
i18ndictionaryoptionalTranslations of the schema's name and description, keyed by locale; a field left out falls back to the untranslated value. The whole map is served — the consumer picks the locale.
namestringoptionalTranslated name.
min length 1 · max length 64
descriptionstringoptionalTranslated description.
idstringResource id: Base58 (9–10 characters) or a 16-character Crockford snowflake. Not an RFC 4122 UUID.
Pattern: ^[0-9A-HJ-NP-Za-km-z]{9,16}$
resourceIdentifierstringUnique Coldwave resource name (CRN) that identifies a resource
sharedbooleanWhether this is the tenant's shared schema, which applies to all of its devices.
serviceIdentifierstringoptionalThe service whose metadata this schema describes; absent on the shared schema.
Pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
createdBystringResource identifier of the entity that created this resource

Errors

StatusDescriptionBody
403You do not have permission to perform this action
404The device does not exist in this tenant.
409A tenant with the given name already existscode: IAM_TENANT_CONFLICT_ERROR
400The request did not match the schema for this endpoint. The details field carries the specific failures.error: Validation Error
401No valid access token was presented, or the DPoP proof accompanying it was missing, expired or bound to a different key.error: string
500The request failed for a reason that is not the caller's to fix. Safe to retry.error: string, message: string, statusCode: 50

Read one meta schema

{schemaId} takes the schema id, or the literal shared to reach the tenant's shared schema without looking its id up first.

GET/api/v1/meta-schema/Yk3pL7rWq2

Path Parameters

NameDescription
schemaIdId of the meta schema, or the alias shared, which resolves to whichever schema is the tenant's shared one.
Alternative 1stringResource id: Base58 (9–10 characters) or a 16-character Crockford snowflake. Not an RFC 4122 UUID.
Pattern: ^[0-9A-HJ-NP-Za-km-z]{9,16}$
Alternative 2

Response

NameDescription
namestringHuman-readable name of the schema.
min length 1 · max length 64
descriptionstringoptionalWhat the described metadata is about, for readers of the schema.
propertiesarrayThe metadata keys this schema describes, unique by key.
keystringThe key this property occupies in the device's metadata object.
min length 1 · max length 64
namestringLabel shown instead of the raw key.
min length 1 · max length 64
descriptionstringoptionalWhat the property means.
typeenumKind of value behind the key: number, string, boolean or datetime — the JSON kinds metadata accepts, not the wire types of a device property.
Possible values: number, string, boolean, datetime
enumarrayoptionalNamed values, unique by value — lets a UI offer a dropdown instead of a free-text field.
valuestringThe raw value as it is stored in the metadata.
min length 1
namestringLabel shown for the value.
min length 1 · max length 64
descriptionstringoptionalWhat the value means.
i18ndictionaryoptionalTranslations of the label, keyed by locale.
namestringoptionalTranslated name.
min length 1 · max length 64
descriptionstringoptionalTranslated description.
rangeMinnumberoptionalMinimum (inclusive); numeric properties only.
rangeMaxnumberoptionalMaximum (exclusive); numeric properties only.
stepnumberoptionalStep an input field should offer; numeric properties only.
unitstringoptionalUnit label, e.g. m.
groupstringoptionalGroups properties into subjects for presentation.
tagbooleanoptionalUI hint: render the value as a tag rather than a plain field.
i18ndictionaryoptionalTranslations of name, description and group, keyed by locale.
namestringoptionalTranslated name.
min length 1 · max length 64
descriptionstringoptionalTranslated description.
groupstringoptionalTranslated group label.
i18ndictionaryoptionalTranslations of the schema's name and description, keyed by locale; a field left out falls back to the untranslated value. The whole map is served — the consumer picks the locale.
namestringoptionalTranslated name.
min length 1 · max length 64
descriptionstringoptionalTranslated description.
idstringResource id: Base58 (9–10 characters) or a 16-character Crockford snowflake. Not an RFC 4122 UUID.
Pattern: ^[0-9A-HJ-NP-Za-km-z]{9,16}$
resourceIdentifierstringUnique Coldwave resource name (CRN) that identifies a resource
sharedbooleanWhether this is the tenant's shared schema, which applies to all of its devices.
serviceIdentifierstringoptionalThe service whose metadata this schema describes; absent on the shared schema.
Pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
createdBystringResource identifier of the entity that created this resource

Errors

StatusDescriptionBody
403You do not have permission to perform this action
404No meta schema with this id exists in the tenant.
409A tenant with the given name already existscode: IAM_TENANT_CONFLICT_ERROR
400The request did not match the schema for this endpoint. The details field carries the specific failures.error: Validation Error
401No valid access token was presented, or the DPoP proof accompanying it was missing, expired or bound to a different key.error: string
500The request failed for a reason that is not the caller's to fix. Safe to retry.error: string, message: string, statusCode: 50

Update a meta schema

Merges changes into the stored schema: properties are matched by key, remove: true deletes one, an explicit null clears an optional field. shared and serviceIdentifier are not patchable — retargeting a schema is a delete plus a create.

PATCH/api/v1/meta-schema/Yk3pL7rWq2

Path Parameters

NameDescription
schemaIdId of the meta schema, or the alias shared, which resolves to whichever schema is the tenant's shared one.
Alternative 1stringResource id: Base58 (9–10 characters) or a 16-character Crockford snowflake. Not an RFC 4122 UUID.
Pattern: ^[0-9A-HJ-NP-Za-km-z]{9,16}$
Alternative 2

Body

NameDescription
namestringoptionalHuman-readable name of the schema.
min length 1 · max length 64
descriptionstringoptionalWhat the described metadata is about, for readers of the schema.
propertiesarrayoptionalProperty patches, matched against the stored list by key; an unmatched patch adds a new property.
keystringWhich property to patch — the key it occupies in the device's metadata object.
min length 1 · max length 64
removeoptionalDelete the matched property instead of merging into it.
namestringoptionalLabel shown instead of the raw key.
min length 1 · max length 64
descriptionstringoptionalWhat the property means.
typeoptionalenumKind of value behind the key: number, string, boolean or datetime — the JSON kinds metadata accepts, not the wire types of a device property.
Possible values: number, string, boolean, datetime
enumarrayoptionalNamed values, unique by value; the list replaces the stored one as a whole.
valuestringThe raw value as it is stored in the metadata.
min length 1
namestringLabel shown for the value.
min length 1 · max length 64
descriptionstringoptionalWhat the value means.
i18ndictionaryoptionalTranslations of the label, keyed by locale.
namestringoptionalTranslated name.
min length 1 · max length 64
descriptionstringoptionalTranslated description.
rangeMinnumberoptionalMinimum (inclusive); numeric properties only.
rangeMaxnumberoptionalMaximum (exclusive); numeric properties only.
stepnumberoptionalStep an input field should offer; numeric properties only.
unitstringoptionalUnit label, e.g. m.
groupstringoptionalGroups properties into subjects for presentation.
tagbooleanoptionalUI hint: render the value as a tag rather than a plain field.
i18ndictionaryoptionalTranslations of name, description and group, keyed by locale; the map replaces the stored one as a whole, so adding a locale means resending the others.
namestringoptionalTranslated name.
min length 1 · max length 64
descriptionstringoptionalTranslated description.
groupstringoptionalTranslated group label.
i18ndictionaryoptionalTranslations of the schema's name and description, keyed by locale; the map replaces the stored one as a whole.
namestringoptionalTranslated name.
min length 1 · max length 64
descriptionstringoptionalTranslated description.

Errors

StatusDescriptionBody
403You do not have permission to perform this action
404No meta schema with this id exists in the tenant.
409A tenant with the given name already existscode: IAM_TENANT_CONFLICT_ERROR
400The merged result of the patch is no longer a valid meta schema — a property added without its required fields, for instance. message names what failed; the stored schema is left untouched.message: string
401No valid access token was presented, or the DPoP proof accompanying it was missing, expired or bound to a different key.error: string
500The request failed for a reason that is not the caller's to fix. Safe to retry.error: string, message: string, statusCode: 50

Delete a meta schema

Removes the schema and frees its slot, so the same service — or the shared slot — can be described again. The metadata stored on the devices stays; only its description is gone.

DELETE/api/v1/meta-schema/Yk3pL7rWq2

Path Parameters

NameDescription
schemaIdId of the meta schema, or the alias shared, which resolves to whichever schema is the tenant's shared one.
Alternative 1stringResource id: Base58 (9–10 characters) or a 16-character Crockford snowflake. Not an RFC 4122 UUID.
Pattern: ^[0-9A-HJ-NP-Za-km-z]{9,16}$
Alternative 2

Errors

StatusDescriptionBody
403You do not have permission to perform this action
404No meta schema with this id exists in the tenant.
409A tenant with the given name already existscode: IAM_TENANT_CONFLICT_ERROR
400The request did not match the schema for this endpoint. The details field carries the specific failures.error: Validation Error
401No valid access token was presented, or the DPoP proof accompanying it was missing, expired or bound to a different key.error: string
500The request failed for a reason that is not the caller's to fix. Safe to retry.error: string, message: string, statusCode: 50

Events

Published on the tenant's event stream and delivered over the websocket to every subscriber holding read on the resource the message names. resourceIdentifier is the resource the action changed; the payload is the shape below.

EventDescription
META_SCHEMA_CREATEA meta schema was stored, taking either the tenant's shared slot or the slot of one service.
META_SCHEMA_DELETEA meta schema was removed; the service or shared slot it occupied is free again.
META_SCHEMA_UPDATEA patch was merged into a stored schema; the payload carries the complete merged entry, not the patch.

Meta schema created

A meta schema was stored, taking either the tenant's shared slot or the slot of one service.

EVENTMETA_SCHEMA_CREATE

Payload

NameDescription
namestringHuman-readable name of the schema.
min length 1 · max length 64
descriptionstringoptionalWhat the described metadata is about, for readers of the schema.
propertiesarrayThe metadata keys this schema describes, unique by key.
keystringThe key this property occupies in the device's metadata object.
min length 1 · max length 64
namestringLabel shown instead of the raw key.
min length 1 · max length 64
descriptionstringoptionalWhat the property means.
typeenumKind of value behind the key: number, string, boolean or datetime — the JSON kinds metadata accepts, not the wire types of a device property.
Possible values: number, string, boolean, datetime
enumarrayoptionalNamed values, unique by value — lets a UI offer a dropdown instead of a free-text field.
valuestringThe raw value as it is stored in the metadata.
min length 1
namestringLabel shown for the value.
min length 1 · max length 64
descriptionstringoptionalWhat the value means.
i18ndictionaryoptionalTranslations of the label, keyed by locale.
namestringoptionalTranslated name.
min length 1 · max length 64
descriptionstringoptionalTranslated description.
rangeMinnumberoptionalMinimum (inclusive); numeric properties only.
rangeMaxnumberoptionalMaximum (exclusive); numeric properties only.
stepnumberoptionalStep an input field should offer; numeric properties only.
unitstringoptionalUnit label, e.g. m.
groupstringoptionalGroups properties into subjects for presentation.
tagbooleanoptionalUI hint: render the value as a tag rather than a plain field.
i18ndictionaryoptionalTranslations of name, description and group, keyed by locale.
namestringoptionalTranslated name.
min length 1 · max length 64
descriptionstringoptionalTranslated description.
groupstringoptionalTranslated group label.
i18ndictionaryoptionalTranslations of the schema's name and description, keyed by locale; a field left out falls back to the untranslated value. The whole map is served — the consumer picks the locale.
namestringoptionalTranslated name.
min length 1 · max length 64
descriptionstringoptionalTranslated description.
idstringResource id: Base58 (9–10 characters) or a 16-character Crockford snowflake. Not an RFC 4122 UUID.
Pattern: ^[0-9A-HJ-NP-Za-km-z]{9,16}$
resourceIdentifierstringUnique Coldwave resource name (CRN) that identifies a resource
sharedbooleanWhether this is the tenant's shared schema, which applies to all of its devices.
serviceIdentifierstringoptionalThe service whose metadata this schema describes; absent on the shared schema.
Pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
createdBystringResource identifier of the entity that created this resource

Meta schema deleted

A meta schema was removed; the service or shared slot it occupied is free again.

EVENTMETA_SCHEMA_DELETE

Payload

NameDescription

Meta schema updated

A patch was merged into a stored schema; the payload carries the complete merged entry, not the patch.

EVENTMETA_SCHEMA_UPDATE

Payload

NameDescription
namestringHuman-readable name of the schema.
min length 1 · max length 64
descriptionstringoptionalWhat the described metadata is about, for readers of the schema.
propertiesarrayThe metadata keys this schema describes, unique by key.
keystringThe key this property occupies in the device's metadata object.
min length 1 · max length 64
namestringLabel shown instead of the raw key.
min length 1 · max length 64
descriptionstringoptionalWhat the property means.
typeenumKind of value behind the key: number, string, boolean or datetime — the JSON kinds metadata accepts, not the wire types of a device property.
Possible values: number, string, boolean, datetime
enumarrayoptionalNamed values, unique by value — lets a UI offer a dropdown instead of a free-text field.
valuestringThe raw value as it is stored in the metadata.
min length 1
namestringLabel shown for the value.
min length 1 · max length 64
descriptionstringoptionalWhat the value means.
i18ndictionaryoptionalTranslations of the label, keyed by locale.
namestringoptionalTranslated name.
min length 1 · max length 64
descriptionstringoptionalTranslated description.
rangeMinnumberoptionalMinimum (inclusive); numeric properties only.
rangeMaxnumberoptionalMaximum (exclusive); numeric properties only.
stepnumberoptionalStep an input field should offer; numeric properties only.
unitstringoptionalUnit label, e.g. m.
groupstringoptionalGroups properties into subjects for presentation.
tagbooleanoptionalUI hint: render the value as a tag rather than a plain field.
i18ndictionaryoptionalTranslations of name, description and group, keyed by locale.
namestringoptionalTranslated name.
min length 1 · max length 64
descriptionstringoptionalTranslated description.
groupstringoptionalTranslated group label.
i18ndictionaryoptionalTranslations of the schema's name and description, keyed by locale; a field left out falls back to the untranslated value. The whole map is served — the consumer picks the locale.
namestringoptionalTranslated name.
min length 1 · max length 64
descriptionstringoptionalTranslated description.
idstringResource id: Base58 (9–10 characters) or a 16-character Crockford snowflake. Not an RFC 4122 UUID.
Pattern: ^[0-9A-HJ-NP-Za-km-z]{9,16}$
resourceIdentifierstringUnique Coldwave resource name (CRN) that identifies a resource
sharedbooleanWhether this is the tenant's shared schema, which applies to all of its devices.
serviceIdentifierstringoptionalThe service whose metadata this schema describes; absent on the shared schema.
Pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
createdBystringResource identifier of the entity that created this resource