Skip to content

Latest commit

 

History

History
 
 

amqp

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

AMQP 0-9-1 Bindings

This document defines how to describe AMQP-specific information on AsyncAPI.

Version

Current version is 0.2.0.

Server Binding Object

This object MUST NOT contain any properties. Its name is reserved for future use.

Channel Binding Object

This object contains information about the channel representation in AMQP.

Fixed Fields
Field Name Type Description
is string Defines what type of channel is it. Can be either queue or routingKey (default).
exchange Map[string, any] When is=routingKey, this object defines the exchange properties.
exchange.name string The name of the exchange. It MUST NOT exceed 255 characters long.
exchange.type string The type of the exchange. Can be either topic, direct, fanout, default or headers.
exchange.durable boolean Whether the exchange should survive broker restarts or not.
exchange.autoDelete boolean Whether the exchange should be deleted when the last queue is unbound from it.
exchange.vhost string The virtual host of the exchange. Defaults to /.
queue Map[string, any] When is=queue, this object defines the queue properties.
queue.name string The name of the queue. It MUST NOT exceed 255 characters long.
queue.durable boolean Whether the queue should survive broker restarts or not.
queue.exclusive boolean Whether the queue should be used only by one connection or not.
queue.autoDelete boolean Whether the queue should be deleted when the last consumer unsubscribes.
queue.vhost string The virtual host of the queue. Defaults to /.
bindingVersion string The version of this binding. If omitted, "latest" MUST be assumed.

This object MUST contain only the properties defined above.

Example
channels:
  user/signedup:
    bindings:
      amqp:
        is: routingKey
        queue:
          name: my-queue-name
          durable: true
          exclusive: true
          autoDelete: false
          vhost: /
        exchange:
          name: myExchange
          type: topic
          durable: true
          autoDelete: false
          vhost: /
        bindingVersion: 0.1.0

Operation Binding Object

This object contains information about the operation representation in AMQP.

Fixed Fields
Field Name Type Applies To Description
expiration integer Publish, Subscribe TTL (Time-To-Live) for the message. It MUST be greater than or equal to zero.
userId string Publish, Subscribe Identifies the user who has sent the message.
cc [string] Publish, Subscribe The routing keys the message should be routed to at the time of publishing.
priority integer Publish, Subscribe A priority for the message.
deliveryMode integer Publish, Subscribe Delivery mode of the message. Its value MUST be either 1 (transient) or 2 (persistent).
mandatory boolean Publish Whether the message is mandatory or not.
bcc [string] Publish Like cc but consumers will not receive this information.
replyTo string Publish, Subscribe Name of the queue where the consumer should send the response.
timestamp boolean Publish, Subscribe Whether the message should include a timestamp or not.
ack boolean Subscribe Whether the consumer should ack the message or not.
bindingVersion string Publish, Subscribe The version of this binding. If omitted, "latest" MUST be assumed.

This object MUST contain only the properties defined above.

Example
channels:
  user/signup:
    publish:
      bindings:
        amqp:
          expiration: 100000
          userId: guest
          cc: ['user.logs']
          priority: 10
          deliveryMode: 2
          mandatory: false
          bcc: ['external.audit']
          replyTo: user.signedup
          timestamp: true
          ack: false
          bindingVersion: 0.1.0

Message Binding Object

This object contains information about the message representation in AMQP.

Fixed Fields
Field Name Type Description
contentEncoding string A MIME encoding for the message content.
messageType string Application-specific message type.
bindingVersion string The version of this binding. If omitted, "latest" MUST be assumed.

This object MUST contain only the properties defined above.

channels:
  user/signup:
    publish:
      message:
        bindings:
          amqp:
            contentEncoding: gzip
            messageType: 'user.signup'
            bindingVersion: 0.1.0