SpatialDDS web binding (spatialdds-py)

Version 0.7.3 · OpenAPI 3.1.0 · generated, never hand-written · openapi.yaml

Generated by tools/gen_openapi.py from the gateway's own tables and the published JSON Schemas; never edited by hand. Reads are open; writes take a bearer token scoped to scenes. The WebSocket streams (N.5) are described on each collection path, not modelled.

Operations

POST /.well-known/spatialdds/search

The same search, as a POST body open

200 429 413 415

GET /.well-known/spatialdds/schemas

The published JSON Schemas, by type open

200 429

GET /.well-known/spatialdds/schemas/{type}

open

200 404 429

GET /.well-known/spatialdds/bootstrap

DDS-join material (N.2); optional open

200 404 429

GET /.well-known/spatialdds/resolver

§7.5.2 resolver metadata open

200 404 429

GET /.well-known/spatialdds/openapi

This document open

200 429

GET /.well-known/spatialdds/openapi.html

This document as a static reference page open

200 429

GET /spatialdds/resolve

Resolve a URI to its manifest (§7.5.2) open

200 400 404 429

PUT /spatialdds/resolve

Publish a manifest, keyed by its own id token

The uri parameter is not used; the body's id is the key. Its scene segment is the lane. **Writes are per lane.** The path's first segment is the scene; the bearer token must be granted it (tenancy.WRITE_REFUSALS).

200 201 400 401 403 405 429 413 415 503

DELETE /spatialdds/resolve

Withdraw a manifest; resolve then answers 404 token

Owner-checked by the URI's scene segment. **Writes are per lane.** The path's first segment is the scene; the bearer token must be granted it (tenancy.WRITE_REFUSALS).

204 400 401 403 404 405 429 503

GET /assets/{name}

Asset bytes this endpoint hosts (implementation-defined) open

200 404 429

GET /{scene}/{stream}/announce/v1

Every spatial.disco.Announce instance in the latched set open

**The same URL is also a WebSocket** (N.5): connect with wss:// and receive the latched set as sample events, exactly one end_of_replay carrying the replay count, then live sample and dispose events ({event, topic, key, data | reason}). Not modelled here; see [Appendix N.5](https://spatialdds.org/v1.8/appendix-n/).

200 304 404 429 503

POST /{scene}/{stream}/announce/v1

An N.6 command addressed through the announce lane token

Accepted only on a lane whose topic advertises accepts_commands; otherwise 405. **Writes are per lane.** The path's first segment is the scene; the bearer token must be granted it (tenancy.WRITE_REFUSALS). Every member of the record is required: a body is a whole record, never a patch.

202 400 401 403 405 409 429 413 415

GET /{scene}/{stream}/announce/v1/{key}

One spatial.disco.Announce instance open

200 304 404 429

PUT /{scene}/{stream}/announce/v1/{key}

Publish or replace a spatial.disco.Announce token

**Writes are per lane.** The path's first segment is the scene; the bearer token must be granted it (tenancy.WRITE_REFUSALS). Every member of the record is required: a body is a whole record, never a patch. The body's key must equal the URL's. If-Match is honoured when present.

200 201 400 401 403 405 412 429 413 415 503

DELETE /{scene}/{stream}/announce/v1/{key}

Withdraw (dispose) a spatial.disco.Announce token

**Writes are per lane.** The path's first segment is the scene; the bearer token must be granted it (tenancy.WRITE_REFUSALS). The dispose streams on the collection's WebSocket with its reason.

204 400 401 403 404 405 429 503

GET /{scene}/{stream}/content_announce/v1

Every spatial.disco.ContentAnnounce instance in the latched set open

**The same URL is also a WebSocket** (N.5): connect with wss:// and receive the latched set as sample events, exactly one end_of_replay carrying the replay count, then live sample and dispose events ({event, topic, key, data | reason}). Not modelled here; see [Appendix N.5](https://spatialdds.org/v1.8/appendix-n/).

200 304 404 429 503

POST /{scene}/{stream}/content_announce/v1

An N.6 command addressed through the content_announce lane token

Accepted only on a lane whose topic advertises accepts_commands; otherwise 405. **Writes are per lane.** The path's first segment is the scene; the bearer token must be granted it (tenancy.WRITE_REFUSALS). Every member of the record is required: a body is a whole record, never a patch.

202 400 401 403 405 409 429 413 415

GET /{scene}/{stream}/content_announce/v1/{key}

One spatial.disco.ContentAnnounce instance open

200 304 404 429

PUT /{scene}/{stream}/content_announce/v1/{key}

Publish or replace a spatial.disco.ContentAnnounce token

**Writes are per lane.** The path's first segment is the scene; the bearer token must be granted it (tenancy.WRITE_REFUSALS). Every member of the record is required: a body is a whole record, never a patch. The body's key must equal the URL's. If-Match is honoured when present.

200 201 400 401 403 405 412 429 413 415 503

DELETE /{scene}/{stream}/content_announce/v1/{key}

Withdraw (dispose) a spatial.disco.ContentAnnounce token

**Writes are per lane.** The path's first segment is the scene; the bearer token must be granted it (tenancy.WRITE_REFUSALS). The dispose streams on the collection's WebSocket with its reason.

204 400 401 403 404 405 429 503

GET /{scene}/{stream}/geo_anchor/v1

Every spatial.core.GeoAnchor instance in the latched set open

**The same URL is also a WebSocket** (N.5): connect with wss:// and receive the latched set as sample events, exactly one end_of_replay carrying the replay count, then live sample and dispose events ({event, topic, key, data | reason}). Not modelled here; see [Appendix N.5](https://spatialdds.org/v1.8/appendix-n/).

200 304 404 429 503

POST /{scene}/{stream}/geo_anchor/v1

An N.6 command addressed through the geo_anchor lane token

Accepted only on a lane whose topic advertises accepts_commands; otherwise 405. **Writes are per lane.** The path's first segment is the scene; the bearer token must be granted it (tenancy.WRITE_REFUSALS). Every member of the record is required: a body is a whole record, never a patch.

202 400 401 403 405 409 429 413 415

GET /{scene}/{stream}/geo_anchor/v1/{key}

One spatial.core.GeoAnchor instance open

200 304 404 429

PUT /{scene}/{stream}/geo_anchor/v1/{key}

Publish or replace a spatial.core.GeoAnchor token

**Writes are per lane.** The path's first segment is the scene; the bearer token must be granted it (tenancy.WRITE_REFUSALS). Every member of the record is required: a body is a whole record, never a patch. The body's key must equal the URL's. If-Match is honoured when present.

200 201 400 401 403 405 412 429 413 415 503

DELETE /{scene}/{stream}/geo_anchor/v1/{key}

Withdraw (dispose) a spatial.core.GeoAnchor token

**Writes are per lane.** The path's first segment is the scene; the bearer token must be granted it (tenancy.WRITE_REFUSALS). The dispose streams on the collection's WebSocket with its reason.

204 400 401 403 404 405 429 503

GET /{scene}/{stream}/{type}/{version}

Any other served topic, read-only token for operator-scoped

Latched types answer with the latched set; streamed types with the replayed window. Public or operator-scoped per the type: spatial.core.FrameTransform latched public, spatial.events.CrossingLine latched public, spatial.events.SpatialEvent stream bearer, spatial.events.SpatialZone latched public, spatial.owm.Entity latched bearer, spatial.owm.ModelPose stream bearer, spatial.semantics.Detection2DSet stream bearer, spatial.semantics.Detection3DSet stream bearer, spatial.semantics.FusedTrackSet stream bearer. **The same URL is also a WebSocket** (N.5): connect with wss:// and receive the latched set as sample events, exactly one end_of_replay carrying the replay count, then live sample and dispose events ({event, topic, key, data | reason}). Not modelled here; see [Appendix N.5](https://spatialdds.org/v1.8/appendix-n/).

200 304 401 404 429 503

GET /.well-known/spatialdds/{stream}/{type}/{version}

A four-segment topic's collection token for operator-scoped

A four-segment topic (spatialdds/<stream>/<type>/<version>, no scene), such as the discovery announce lane, served exactly as a scene-scoped collection is: latched set, ETag, 304, the same access classes, and the N.5 stream by upgrading the same path. Read-only: a topic with no scene is in no lane. **The same URL is also a WebSocket** (N.5): connect with wss:// and receive the latched set as sample events, exactly one end_of_replay carrying the replay count, then live sample and dispose events ({event, topic, key, data | reason}). Not modelled here; see [Appendix N.5](https://spatialdds.org/v1.8/appendix-n/).

200 304 401 404 429 503

GET /.well-known/spatialdds/{stream}/{type}/{version}/{key}

One instance of a four-segment topic token for operator-scoped

A four-segment topic (spatialdds/<stream>/<type>/<version>, no scene), such as the discovery announce lane, served exactly as a scene-scoped collection is: latched set, ETag, 304, the same access classes, and the N.5 stream by upgrading the same path. Read-only: a topic with no scene is in no lane.

200 304 401 404 429 503

Schemas

115 components, from the published JSON Schemas at /.well-known/spatialdds/schemas.