{ "$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 }