Texecom Event Schemas

JSON Schema Documentation

Hardware Linked Payload

Canonical hardware-generic payload emitted when a hardware item is linked to a site. v1.1.0 is the shape device-service sends from POST /installations/site-hardware-links, which RFC-027 merged into this event: the site key is camelCase siteId (v1.0.0 used site_id), createdBy is added, and version, createdBy and the identifiers are required because device-service emits them on every event. Identity's hardware projection reads siteId or site_id, so both payload versions project identically. The legacy name device.installation.site_hardware_linked carries the same payload during the dual-emit window.

$idhttps://schemas.texecom-prod.com/v2/events/payload/service/device/hardware/linked/v1.1.0.json
$schemahttp://json-schema.org/draft-07/schema

Properties

NameType
hardwareIdString
serialString
siteIdString
createdByString
versionNumber
occurredAtString

hardwareId

Description Identifier of the hardware record.
TypeString
Required Yes
Format uuid

serial

Description Hardware serial number as printed on the unit.
TypeString
Required Yes

siteId

Description Identifier of the site the hardware is linked to.
TypeString
Required Yes
Format uuid

createdBy

Description Identifier of the user who linked the hardware to the site.
TypeString
Required Yes

version

Description Wall-clock-ms tiebreaker used by projections for last-write-wins ordering.
TypeNumber
Required Yes

occurredAt

Description UTC timestamp when the link occurred, in ISO 8601 format.
TypeString
Required Yes
Format date-time

Schema

{
    "$id": "https://schemas.texecom-prod.com/v2/events/payload/service/device/hardware/linked/v1.1.0.json",
    "$schema": "http://json-schema.org/draft-07/schema",
    "title": "Hardware Linked Payload",
    "description": "Canonical hardware-generic payload emitted when a hardware item is linked to a site. v1.1.0 is the shape device-service sends from POST /installations/site-hardware-links, which RFC-027 merged into this event: the site key is camelCase siteId (v1.0.0 used site_id), createdBy is added, and version, createdBy and the identifiers are required because device-service emits them on every event. Identity's hardware projection reads siteId or site_id, so both payload versions project identically. The legacy name device.installation.site_hardware_linked carries the same payload during the dual-emit window.",
    "type": "object",
    "properties": {
        "hardwareId": {
            "description": "Identifier of the hardware record.",
            "type": "string",
            "format": "uuid"
        },
        "serial": {
            "description": "Hardware serial number as printed on the unit.",
            "type": "string"
        },
        "siteId": {
            "description": "Identifier of the site the hardware is linked to.",
            "type": "string",
            "format": "uuid"
        },
        "createdBy": {
            "description": "Identifier of the user who linked the hardware to the site.",
            "type": "string"
        },
        "version": {
            "description": "Wall-clock-ms tiebreaker used by projections for last-write-wins ordering.",
            "type": "number"
        },
        "occurredAt": {
            "description": "UTC timestamp when the link occurred, in ISO 8601 format.",
            "type": "string",
            "format": "date-time"
        }
    },
    "required": [
        "hardwareId",
        "serial",
        "siteId",
        "createdBy",
        "version",
        "occurredAt"
    ],
    "additionalProperties": false
}