Texecom Event Schemas

JSON Schema Documentation

Site Created Payload

Payload emitted when a new site is created. Carries the whole sites row — producers emit a full snapshot on every event, never a delta (RFC-030 §10), so consumers may converge onto payload contents. Nullable fields are emitted as null; keys are never dropped.

$idhttps://schemas.texecom-prod.com/v2/events/payload/service/device/site/created/v1.0.0.json
$schemahttp://json-schema.org/draft-07/schema

Properties

NameType
nameString
countryCodeString
siteTypeString
addressString
cityString
postalCodeString
county[string, null]
clientName[string, null]
commissionedOn[string, null]
createdBy[string, null]
versionNumber
occurredAtString

name

Description Display name of the site.
TypeString
Required Yes

countryCode

Description ISO 3166-1 alpha-2 country code of the site.
TypeString
Required Yes

siteType

Description Category of the site.
TypeString
Required Yes
Enum
  • Residential
  • Commercial

address

Description Street address of the site.
TypeString
Required Yes

city

Description City the site is located in.
TypeString
Required Yes

postalCode

Description Postal code of the site.
TypeString
Required Yes

county

Description County the site is located in, or null if not supplied.
Type[string, null]
Required Yes

clientName

Description Name of the end client the site belongs to, or null if not supplied.
Type[string, null]
Required Yes

commissionedOn

Description UTC timestamp when the site was handed over to the customer, in ISO 8601 format. Always null on creation — a site can only be commissioned by a later update. Present regardless, so created and updated payloads carry the same keys.
Type[string, null]
Required Yes
Format date-time

createdBy

Description Identifier of the user who created the site, or null if not attributed.
Type[string, null]
Required Yes

version

Description Monotonically incrementing row version, used by projections for last-write-wins ordering.
TypeNumber
Required Yes

occurredAt

Description UTC timestamp when the site was created, in ISO 8601 format.
TypeString
Required Yes
Format date-time

Schema

{
    "$id": "https://schemas.texecom-prod.com/v2/events/payload/service/device/site/created/v1.0.0.json",
    "$schema": "http://json-schema.org/draft-07/schema",
    "title": "Site Created Payload",
    "description": "Payload emitted when a new site is created. Carries the whole sites row — producers emit a full snapshot on every event, never a delta (RFC-030 §10), so consumers may converge onto payload contents. Nullable fields are emitted as null; keys are never dropped.",
    "type": "object",
    "properties": {
        "name": {
            "description": "Display name of the site.",
            "type": "string"
        },
        "countryCode": {
            "description": "ISO 3166-1 alpha-2 country code of the site.",
            "type": "string"
        },
        "siteType": {
            "description": "Category of the site.",
            "type": "string",
            "enum": [
                "Residential",
                "Commercial"
            ]
        },
        "address": {
            "description": "Street address of the site.",
            "type": "string"
        },
        "city": {
            "description": "City the site is located in.",
            "type": "string"
        },
        "postalCode": {
            "description": "Postal code of the site.",
            "type": "string"
        },
        "county": {
            "description": "County the site is located in, or null if not supplied.",
            "type": [
                "string",
                "null"
            ]
        },
        "clientName": {
            "description": "Name of the end client the site belongs to, or null if not supplied.",
            "type": [
                "string",
                "null"
            ]
        },
        "commissionedOn": {
            "description": "UTC timestamp when the site was handed over to the customer, in ISO 8601 format. Always null on creation — a site can only be commissioned by a later update. Present regardless, so created and updated payloads carry the same keys.",
            "type": [
                "string",
                "null"
            ],
            "format": "date-time"
        },
        "createdBy": {
            "description": "Identifier of the user who created the site, or null if not attributed.",
            "type": [
                "string",
                "null"
            ]
        },
        "version": {
            "description": "Monotonically incrementing row version, used by projections for last-write-wins ordering.",
            "type": "number"
        },
        "occurredAt": {
            "description": "UTC timestamp when the site was created, in ISO 8601 format.",
            "type": "string",
            "format": "date-time"
        }
    },
    "required": [
        "name",
        "countryCode",
        "siteType",
        "address",
        "city",
        "postalCode",
        "county",
        "clientName",
        "commissionedOn",
        "createdBy",
        "version",
        "occurredAt"
    ],
    "additionalProperties": false
}