CloudEvents · Schema
Subscription
A CloudEvents subscription describing an event stream source, delivery sink, and filter criteria. Once created, the broker delivers all matching events from the specified source to the sink endpoint.
Cloud NativeEventsGraduatedInteroperabilityMessagingSpecification
Properties
| Name | Type | Description |
|---|---|---|
| id | string | Unique identifier for this subscription assigned by the broker. Immutable once set. |
| sink | string | The URL of the event consumer. Events matching the filter are delivered here using the protocol specified by the 'protocol' field. |
| protocol | string | The protocol used to deliver events to the sink, such as HTTP or AMQP. Must match a protocol the sink endpoint supports. |
| protocolSettings | object | |
| source | string | Identifies the origin of events this subscription applies to. Matches the 'source' attribute of CloudEvents. If omitted, events from any source are eligible. |
| types | array | List of CloudEvent types this subscription is interested in. If omitted or empty, all event types from the source are delivered. |
| filters | array | A list of filter expressions in CloudEvents CESQL or dialect format that further narrow which events are delivered. All filters must match for an event to be delivered. |
| config | object | Additional implementation-specific configuration for the subscription. The properties accepted here are defined by the specific broker implementation. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "#/components/schemas/Subscription",
"title": "Subscription",
"type": "object",
"description": "A CloudEvents subscription describing an event stream source, delivery sink, and filter criteria. Once created, the broker delivers all matching events from the specified source to the sink endpoint.",
"required": [
"id",
"sink",
"protocol"
],
"properties": {
"id": {
"type": "string",
"description": "Unique identifier for this subscription assigned by the broker. Immutable once set."
},
"sink": {
"type": "string",
"format": "uri",
"description": "The URL of the event consumer. Events matching the filter are delivered here using the protocol specified by the 'protocol' field."
},
"protocol": {
"type": "string",
"description": "The protocol used to deliver events to the sink, such as HTTP or AMQP. Must match a protocol the sink endpoint supports.",
"enum": [
"HTTP",
"AMQP",
"MQTT",
"NATS",
"Kafka"
]
},
"protocolSettings": {
"$ref": "#/components/schemas/ProtocolSettings"
},
"source": {
"type": "string",
"format": "uri-reference",
"description": "Identifies the origin of events this subscription applies to. Matches the 'source' attribute of CloudEvents. If omitted, events from any source are eligible."
},
"types": {
"type": "array",
"description": "List of CloudEvent types this subscription is interested in. If omitted or empty, all event types from the source are delivered.",
"items": {
"type": "string"
}
},
"filters": {
"type": "array",
"description": "A list of filter expressions in CloudEvents CESQL or dialect format that further narrow which events are delivered. All filters must match for an event to be delivered.",
"items": {
"$ref": "#/components/schemas/Filter"
}
},
"config": {
"type": "object",
"description": "Additional implementation-specific configuration for the subscription. The properties accepted here are defined by the specific broker implementation.",
"additionalProperties": true
}
}
}