Schema describing an AMQP 0-9-1 binding. Bindings are rules that exchanges use to route messages to queues. A binding links a queue to an exchange with a routing key and optional arguments for headers-based matching.
{
"$id": "amqp-binding.json",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "AMQP Binding",
"description": "Schema describing an AMQP 0-9-1 binding. Bindings are rules that exchanges use to route messages to queues. A binding links a queue to an exchange with a routing key and optional arguments for headers-based matching.",
"type": "object",
"required": [
"source",
"destination"
],
"properties": {
"source": {
"type": "string",
"description": "The name of the exchange from which messages are routed."
},
"destination": {
"type": "string",
"description": "The name of the queue or exchange to which messages are routed."
},
"destinationType": {
"type": "string",
"description": "Whether the destination is a queue or an exchange.",
"enum": [
"queue",
"exchange"
],
"default": "queue"
},
"routingKey": {
"type": "string",
"description": "The routing key for the binding. For topic exchanges, supports wildcards: * matches one word, # matches zero or more words.",
"examples": [
"orders.created",
"orders.*",
"orders.#",
""
]
},
"arguments": {
"type": "object",
"description": "Optional arguments for the binding. Used primarily with headers exchanges for matching on message header values.",
"properties": {
"x-match": {
"type": "string",
"description": "Matching algorithm for headers exchange bindings. 'all' requires all headers to match, 'any' requires at least one.",
"enum": [
"all",
"any"
]
}
},
"additionalProperties": true
}
},
"additionalProperties": false
}