AMQP · JSON Structure

Amqp Binding Structure

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 Properties: 5 Required: 2
AMQPAsynchronousMessage QueueMessagingMiddlewareOpen StandardPublish Subscribe

AMQP Binding is a JSON Structure definition published by AMQP, describing 5 properties, of which 2 are required. It conforms to the https://json-structure.org/meta/core/v0/# meta-schema.

Properties

source destination destinationType routingKey arguments

Meta-schema: https://json-structure.org/meta/core/v0/#

JSON Structure

Raw ↑
{
  "$id": "https://raw.githubusercontent.com/api-evangelist/amqp/refs/heads/main/json-structure/amqp-binding-structure.json",
  "$schema": "https://json-structure.org/meta/core/v0/#",
  "name": "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
}