Menu
Platform
AI
App store purchases
Database
Flags
Jobs and cron
Localization
Monitoring
Notifications
Payments
Queues
Sandboxes
Webhooks
Getting Started
Authentication
KV Store
Deploy & Infrastructure
Reference
Publish a topic
Publishes CloudEvents into a Topic, atomically.
This method is not served on the public API.
api.sylphx.comdoes not route this call: its backend is not deployed behind the public API, or does not implement the call. This page documents the contract. It is kept out of the sidebar and of search engines.
Publishes CloudEvents into a Topic, atomically. Replaying the same source + id with the same payload returns the stored event; a different payload fails with RESOURCE_ALREADY_EXISTS.
- Path
POST https://api.sylphx.com/v1/orgs/acme/projects/shop/envs/production/topics/topic:publish - Scope
events:publish - Effect
write— a successful call changes state. - Collection topics
#Request
| Field | Type | What it is |
|---|---|---|
name | string | The name of the topic. Required. |
events | CloudEvent[] | The events, at most 100. Required. |
#CloudEvent
| Field | Type | What it is |
|---|---|---|
id | string | Unique per source; with source it is the dedupe key. Required. |
source | string | The producer's URI-reference. Required. |
type | string | The event type, for example com.example.order.created. Required. |
subject | string | The subject within the source. |
event_time | timestamp | When the occurrence happened. |
data_content_type | string | The payload media type; default application/json. |
data_schema | string | The payload schema URI. |
data | value | The payload. |
extensions | map<string, string> | Extension attributes, at most 64. |
#Response
| Field | Type | What it is |
|---|---|---|
events | Event[] | The stored events, in request order. |
#Event
| Field | Type | What it is |
|---|---|---|
name | string | orgs/{org}/projects/{project}/envs/{env}/events/{event}. |
uid | string | evt_<cell><ulid>; never reused. Output only. |
meta | ResourceMeta | Resource metadata. |
topic | string | The Topic it was published to. Output only. |
source | string | The producer's CloudEvents source. Output only. |
event_id | string | The producer's CloudEvents id, unique per source. Output only. |
type | string | The CloudEvents type. Output only. |
subject | string | The CloudEvents subject. Output only. |
event_time | timestamp | The CloudEvents time. Output only. |
data_content_type | string | The CloudEvents datacontenttype. Output only. |
data_schema | string | The CloudEvents dataschema. Output only. |
data | value | The payload. Output only. |
extensions | map<string, string> | CloudEvents extension attributes. Output only. |
admit_time | timestamp | When Events admitted it. Output only. |
#ResourceMeta
| Field | Type | What it is |
|---|---|---|
generation | int64 | Increases by one on every change to spec. Output only. |
etag | string | Strong ETag (AIP-154): changes on any change to spec, status, or metadata. Send it back as If-Match or etag to make Update and Delete conditional; a mismatch fails with ABORTED / 409 ETAG_MISMATCH. Output only. |
create_time | timestamp | When the Resource was created. Output only. |
update_time | timestamp | When the Resource last changed. Output only. |
delete_time | timestamp | Set while the Resource is being deleted. Output only. |
labels | map<string, string> | Caller-writable, indexed labels (AIP-122 label rules). |
annotations | map<string, string> | Caller-writable, unindexed annotations. |
display_name | string | Caller-writable human-readable name. |
creator | string | The principal that created the Resource. Output only. |
#Errors
UNAUTHENTICATED— No valid key or token was presented.PERMISSION_DENIED— The key lacks the method's permission.RESOURCE_NOT_FOUND— The named Resource does not exist or is not visible.INVALID_FIELD— A field failed validation.RESOURCE_ALREADY_EXISTS— A Resource with this name exists.RATE_LIMITED— The rate limit is reached; see Retry-After.SPEND_LIMIT_REACHED— The org's spend limit is reached.
Every error arrives in the body Errors describes.
#Examples
curl -X POST "https://api.sylphx.com/v1/orgs/acme/projects/shop/envs/production/topics/topic:publish" \
-H "Authorization: Bearer $SYLPHX_API_KEY" \
-H "Content-Type: application/json" \
-d '{"events":[{"id":"…","source":"…","type":"…"}]}'