AMQP · Schema

AMQP Binding

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.

AMQPAsynchronousMessage QueueMessagingMiddlewareOpen StandardPublish Subscribe

Properties

Name Type Description
source string The name of the exchange from which messages are routed.
destination string The name of the queue or exchange to which messages are routed.
destinationType string Whether the destination is a queue or an exchange.
routingKey string The routing key for the binding. For topic exchanges, supports wildcards: * matches one word, # matches zero or more words.
arguments object Optional arguments for the binding. Used primarily with headers exchanges for matching on message header values.
View JSON Schema on GitHub

JSON Schema

amqp-binding.json Raw ↑
{
  "$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
}