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.3.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:
  userSignup:
    address: 'user/signup'
    bindings:
      amqp:
        is: routingKey
        exchange:
          name: myExchange
          type: topic
          durable: true
          autoDelete: false
          vhost: /
        bindingVersion: 0.3.0
channels:
  userSignup:
    address: 'user/signup'
    bindings:
      amqp:
        is: queue
        queue:
          name: my-queue-name
          durable: true
          exclusive: true
          autoDelete: false
          vhost: /
        bindingVersion: 0.3.0

Operation Binding Object

This object contains information about the operation representation in AMQP.

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

This object MUST contain only the properties defined above.

Example
operations:
  userSignup:
    channel: 
      $ref: '#/channels/userSignup'
    bindings:
      amqp:
        expiration: 100000
        userId: guest
        cc: ['user.logs']
        priority: 10
        deliveryMode: 2
        mandatory: false
        bcc: ['external.audit']
        timestamp: true
        ack: false
        bindingVersion: 0.3.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:
  userSignup:
    address: 'user/signup'
    messages:
      userSignupMessage:
        bindings:
          amqp:
            contentEncoding: gzip
            messageType: 'user.signup'
            bindingVersion: 0.3.0