SpatialDDS web binding (spatialdds-py)
Version 0.7.2 · 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
GET /.well-known/spatialdds/search
Services near a geohash (§8.2.3 manifests) open
200 429
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.