### Kafka Server Binding Example Source: https://github.com/asyncapi/bindings/blob/master/kafka/README.md Example of Kafka server binding configuration, including schema registry URL, vendor, and binding version. ```yaml servers: production: bindings: kafka: schemaRegistryUrl: 'https://my-schema-registry.com' schemaRegistryVendor: 'confluent' bindingVersion: '0.5.0' ``` -------------------------------- ### Pulsar Server Binding Example Source: https://github.com/asyncapi/bindings/blob/master/pulsar/README.md Example of how to define Pulsar server binding information in an AsyncAPI document. This includes the tenant and binding version. ```yaml servers: production: bindings: pulsar: tenant: contoso bindingVersion: '0.1.0' ``` -------------------------------- ### MQTT Server Binding Example Source: https://github.com/asyncapi/bindings/blob/master/mqtt/README.md Example of an MQTT server binding configuration within an AsyncAPI document, including client ID, session settings, last will, and keep-alive intervals. ```yaml servers: production: bindings: mqtt: clientId: guest cleanSession: true lastWill: topic: /last-wills qos: 2 message: Guest gone offline. retain: false keepAlive: 60 sessionExpiryInterval: 600 maximumPacketSize: 1200 bindingVersion: 0.2.0 ``` -------------------------------- ### Kafka Channel Binding Example Source: https://github.com/asyncapi/bindings/blob/master/kafka/README.md Example of Kafka channel binding configuration, specifying topic details, partitions, replicas, and topic configurations. ```yaml channels: user-signedup: bindings: kafka: topic: 'my-specific-topic-name' partitions: 20 replicas: 3 topicConfiguration: cleanup.policy: ["delete", "compact"] retention.ms: 604800000 retention.bytes: 1000000000 delete.retention.ms: 86400000 max.message.bytes: 1048588 bindingVersion: '0.5.0' ``` -------------------------------- ### ROS 2 Server Binding Example Source: https://github.com/asyncapi/bindings/blob/master/ros2/README.md This example demonstrates how to configure a ROS 2 server within an AsyncAPI specification, including the middleware implementation and domain ID. ```yaml servers: ros2: host: none protocol: ros2 protocolVersion: humble bindings: ros2: rmwImplementation: rmw_fastrtps_cpp domainId: 0 ``` -------------------------------- ### Anypoint MQ Channel Bindings Example Source: https://github.com/asyncapi/bindings/blob/master/anypointmq/README.md This example demonstrates how to apply Anypoint MQ channel bindings in an AsyncAPI document. It shows a channel with minimal configuration and another with explicit Anypoint MQ bindings for destination and type. ```yaml channels: userSignup: address: 'user/signup' description: | This application receives command messages from this channel about users to sign up. Minimal configuration, omitting a channel binding object. messages: #... userSignup: address: 'user/signup' description: | This application sends events to this channel about users that have signed up. Explicitly provides a channel binding object. messages: #... bindings: anypointmq: destination: user-signup-exchg destinationType: exchange bindingVersion: '0.1.0' ``` -------------------------------- ### MQTT 5 Server Binding Example (Integer) Source: https://github.com/asyncapi/bindings/blob/master/mqtt5/README.md Example of an MQTT 5 server binding with a fixed integer value for session expiry interval. ```yaml servers: production: bindings: mqtt5: sessionExpiryInterval: 60 bindingVersion: 0.2.0 ``` -------------------------------- ### MQTT 5 Server Binding Example (Schema) Source: https://github.com/asyncapi/bindings/blob/master/mqtt5/README.md Example of an MQTT 5 server binding where session expiry interval is defined by a schema object. ```yaml servers: production: bindings: mqtt5: sessionExpiryInterval: type: integer minimum: 100 bindingVersion: 0.2.0 ``` -------------------------------- ### Pulsar Channel Binding Example Source: https://github.com/asyncapi/bindings/blob/master/pulsar/README.md Example of a Pulsar channel binding configuration within an AsyncAPI document. This demonstrates various channel-specific settings like namespace, persistence, compaction, geo-replication, retention, TTL, and deduplication. ```yaml channels: user-signedup: bindings: pulsar: namespace: 'staging' persistence: 'persistent' compaction: 1000 geo-replication: - 'us-east1' - 'us-west1' retention: time: 7 size: 1000 ttl: 360 deduplication: false bindingVersion: '0.1.0' ``` -------------------------------- ### ROS 2 Action Client Binding Example Source: https://github.com/asyncapi/bindings/blob/master/ros2/README.md Defines a ROS 2 action client that sends action goals and receives feedback and results. ```yaml RotateAbsolute: action: send channel: $ref: "#/channels/RotateAbsoluteRequest" reply: channel: $ref: "#/channels/RotateAbsoluteReply" bindings: ros2: role: action_client node: /teleop_turtle ``` -------------------------------- ### ROS 2 Action Server Binding Example Source: https://github.com/asyncapi/bindings/blob/master/ros2/README.md Defines a ROS 2 action server that receives action goals and provides feedback and results. ```yaml receiveRotateAbsolute: action: receive channel: $ref: "#/channels/RotateAbsoluteRequest" reply: channel: $ref: "#/channels/RotateAbsoluteReply" bindings: ros2: role: action_server node: /turtlesim ``` -------------------------------- ### Anypoint MQ Message Binding Example Source: https://github.com/asyncapi/bindings/blob/master/anypointmq/README.md Defines Anypoint MQ specific headers for a message within a channel. Ensure the bindingVersion is correctly set. ```yaml channels: userSignup: address: 'user/signup' messages: #... userSignup: address: 'user/signup' messages: userSignupMessage: headers: type: object properties: correlationId: description: Correlation ID set by application type: string payload: type: object properties: #... correlationId: description: Correlation ID is specified as a header and transmitted in the Anypoint MQ message properties section location: $message.header#/correlationId bindings: anypointmq: headers: type: object properties: messageId: type: string bindingVersion: '0.1.0' ``` -------------------------------- ### MQTT Server Binding with Schema Objects Source: https://github.com/asyncapi/bindings/blob/master/mqtt/README.md Example demonstrating the use of schema objects for session expiry interval and maximum packet size in an MQTT server binding. ```yaml servers: production: bindings: mqtt: sessionExpiryInterval: type: integer minimum: 30 maximum: 1200 maximumPacketSize: type: integer minimum: 256 bindingVersion: 0.2.0 ``` -------------------------------- ### JMS Server Binding Example Source: https://github.com/asyncapi/bindings/blob/master/jms/README.md Example of a servers object with a JMS server binding for production. It includes connection factory details, properties, and a client ID. ```yaml servers: production: url: jms://my-activemq-broker:61616 protocol: jms protocolVersion: '1.1' description: The production ActiveMQ broker accessed via JMS. bindings: jms: # JMS protocol specific server details jmsConnectionFactory: org.apache.activemq.ActiveMQConnectionFactory properties: - name: disableTimeStampsByDefault value: false clientID: my-application-1 ``` -------------------------------- ### Kafka Channel Binding Example Source: https://github.com/asyncapi/bindings/blob/master/kafka/README.md Defines Kafka-specific configurations for a channel, including groupId, clientId, and binding version. ```yaml channels: user-signedup: operations: userSignup: action: receive bindings: kafka: groupId: type: string enum: ['myGroupId'] clientId: type: string enum: ['myClientId'] bindingVersion: '0.5.0' ``` -------------------------------- ### ROS 2 Publisher Binding Example Source: https://github.com/asyncapi/bindings/blob/master/ros2/README.md Defines a ROS 2 publisher for sending messages on a specific channel. ```yaml Pose: action: receive channel: $ref: "#/channels/Pose" bindings: ros2: role: publisher node: /turtlesim ``` -------------------------------- ### AMQP Channel Binding: Queue Example Source: https://github.com/asyncapi/bindings/blob/master/amqp/README.md Defines AMQP channel binding for a queue. Specifies queue details like name, durability, exclusivity, auto-delete, and virtual host. ```yaml 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 ``` -------------------------------- ### ROS 2 Service Server Binding Example Source: https://github.com/asyncapi/bindings/blob/master/ros2/README.md Defines a ROS 2 service server that receives requests on one channel and replies on another. ```yaml SetPen: action: receive channel: $ref: "#/channels/SetPenRequest" reply: channel: $ref: "#/channels/SetPenReply" bindings: ros2: role: service_server node: /turtlesim ``` -------------------------------- ### Solace Bindings with Wildcard Subscription Source: https://github.com/asyncapi/bindings/blob/master/solace/README.md Utilize Solace bindings with a wildcard subscription to receive all topics under a specific path. This example demonstrates subscribing to all 'person/' events. ```yaml components: schemas: Person: type: string messages: PersonEvent: payload: schemaFormat: application/vnd.aai.asyncapi+json;version=3.0.0 schema: $ref: '#/components/schemas/Person' contentType: application/json operations: addPerson: action: send channel: $ref: '#/channels/person' messages: - $ref: '#/channels/person/messages/personEvent' bindings: solace: bindingVersion: 0.4.0 destinations: - destinationType: queue queue: name: CreatedHREvents topicSubscriptions: - person/*/created - destinationType: queue queue: name: UpdatedHREvents topicSubscriptions: - person/*/updated timeToLive: 5000 priority: 120 dmqEligible: true channels: person: address: person/{personId}/{eventType} parameters: personId: description: The machine readable id of the person eventType: enum: - create - delete messages: personEvent: $ref: '#/components/messages/PersonEvent' asyncapi: 3.0.0 info: title: HRApp version: 0.0.1 ``` -------------------------------- ### AMQP Operation Binding Example Source: https://github.com/asyncapi/bindings/blob/master/amqp/README.md Defines AMQP-specific configurations for an operation, such as expiration, user ID, priority, and delivery mode. Ensure these properties align with AMQP broker capabilities. ```yaml 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 ``` -------------------------------- ### AMQP Channel Binding: Routing Key Example Source: https://github.com/asyncapi/bindings/blob/master/amqp/README.md Defines AMQP channel binding for a routing key. Specifies exchange details like name, type, durability, auto-delete, and virtual host. ```yaml channels: userSignup: address: 'user/signup' bindings: amqp: is: routingKey exchange: name: myExchange type: topic durable: true autoDelete: false vhost: / bindingVersion: 0.3.0 ``` -------------------------------- ### ROS 2 Service Client Binding Example Source: https://github.com/asyncapi/bindings/blob/master/ros2/README.md Defines a ROS 2 service client that sends requests on one channel and expects replies on another. ```yaml SetPen: action: send channel: $ref: "#/channels/SetPenRequest" reply: channel: $ref: "#/channels/SetPenReply" bindings: ros2: role: service_client node: /node_client ``` -------------------------------- ### HTTP Message Binding Example Source: https://github.com/asyncapi/bindings/blob/master/http/README.md Specifies HTTP-specific details for a message, such as the response status code and headers. The `bindingVersion` indicates the version of the HTTP binding. ```yaml channels: test: address: /test messages: testMessage: bindings: http: statusCode: 200 headers: type: object properties: Content-Type: type: string enum: ['application/json'] bindingVersion: '0.3.0' ``` -------------------------------- ### AsyncAPI Channel Binding for Google Cloud Pub/Sub Source: https://github.com/asyncapi/bindings/blob/master/googlepubsub/README.md Example of channel binding configuration for Google Cloud Pub/Sub topics using AsyncAPI. It includes settings for schema encoding, topic name, message retention duration, and message storage policy. ```yaml # ... channels: topic-avro-schema: address: projects/your-project/topics/topic-avro-schema bindings: googlepubsub: schemaSettings: encoding: json name: projects/your-project/schemas/message-avro # ... topic-proto-schema: address: projects/your-project/topics/topic-proto-schema bindings: googlepubsub: messageRetentionDuration: 86400s messageStoragePolicy: allowedPersistenceRegions: - us-central1 - us-central2 - us-east1 - us-east4 - us-east5 - us-east7 - us-south1 - us-west1 - us-west2 - us-west3 - us-west4 schemaSettings: encoding: binary name: projects/your-project/schemas/message-proto # ... ``` -------------------------------- ### AMQP Message Binding Example Source: https://github.com/asyncapi/bindings/blob/master/amqp/README.md Specifies AMQP-related metadata for a message, including content encoding, message type, and binding version. Use 'contentEncoding' for compression and 'messageType' for application-level routing. ```yaml channels: userSignup: address: 'user/signup' messages: userSignupMessage: bindings: amqp: contentEncoding: gzip messageType: 'user.signup' bindingVersion: 0.3.0 ``` -------------------------------- ### ROS 2 Subscriber Binding Example Source: https://github.com/asyncapi/bindings/blob/master/ros2/README.md Defines a ROS 2 subscriber for receiving messages on a specific channel with specified Quality of Service (QoS) policies. ```yaml receiveCmdVel: action: receive channel: $ref: "#/channels/CmdVel" bindings: ros2: role: subscriber node: /turtlesim qosPolicies: history: unknown reliability: reliable durability: volatile lifespan: -1 deadline: -1 liveliness: automatic leaseDuration: -1 ``` -------------------------------- ### Kafka Topic Configuration Example Source: https://github.com/asyncapi/bindings/blob/master/kafka/README.md Defines various Kafka topic configuration properties such as cleanup policy, retention periods, and message size limits. Vendor-specific configurations for schema validation and subject name strategies are also included. ```yaml topicConfiguration: cleanup.policy: ["delete", "compact"] retention.ms: 604800000 retention.bytes: 1000000000 delete.retention.ms: 86400000 max.message.bytes: 1048588 confluent.key.schema.validation: true confluent.key.subject.name.strategy: "TopicNameStrategy" confluent.value.schema.validation: true confluent.value.subject.name.strategy: "TopicNameStrategy" ``` -------------------------------- ### HTTP Operation Binding Example Source: https://github.com/asyncapi/bindings/blob/master/http/README.md Defines HTTP-specific information for an operation, including the method and query parameters. The `bindingVersion` property specifies the version of the HTTP binding used. ```yaml channels: employees: address: /employees operations: employees: action: send bindings: http: method: GET query: type: object required: - companyId properties: companyId: type: number minimum: 1 description: The Id of the company. additionalProperties: false bindingVersion: '0.3.0' ``` -------------------------------- ### ROS 2 AsyncAPI Configuration Source: https://github.com/asyncapi/bindings/blob/master/ros2/README.md This YAML file defines the AsyncAPI specification for a ROS 2 turtlesim example, including server details, channel addresses, message structures, and operation bindings. ```yaml asyncapi: 3.0.0 info: title: Turtlesim example for ROS 2 version: 1.0.0 servers: ros2: host: none protocol: ros2 protocolVersion: jazzy bindings: ros2: rmwImplementation: rmw_fastrtps_cpp domainId: 0 channels: CmdVel: address: /turtle1/cmd_vel messages: Twist: $ref: ./interfaces/geometry_msgs.yaml#/components/messages/Twist operations: CmdVel: action: receive channel: $ref: "#/channels/CmdVel" bindings: ros2: role: subscriber node: /turtlesim qosPolicies: history: unknown reliability: reliable durability: volatile lifespan: -1 deadline: -1 liveliness: automatic leaseDuration: -1 ``` -------------------------------- ### Google Pub/Sub Schema Definition Example Source: https://github.com/asyncapi/bindings/blob/master/googlepubsub/README.md Defines Google Cloud Pub/Sub schemas for Avro and Protobuf messages within an AsyncAPI document. Ensure the schema name follows the 'projects/your-project/schemas/your-schema' format. ```yaml # ... components: messages: messageAvro: bindings: googlepubsub: schema: name: projects/your-project/schemas/message-avro contentType: application/json name: MessageAvro payload: schema: fields: - name: message type: string name: Message type: record schemaFormat: application/vnd.apache.avro+yaml;version=1.9.0 messageProto: bindings: googlepubsub: schema: name: projects/your-project/schemas/message-proto contentType: application/octet-stream name: MessageProto payload: schema: | syntax = "proto3"; message Message { required string message = 1; } schemaFormat: application/vnd.google.protobuf;version=3 # ... ``` -------------------------------- ### MQTT Message Binding with Payload Indicator, Response Topic, and Correlation Data Source: https://github.com/asyncapi/bindings/blob/master/mqtt/README.md This message binding example for a publish operation includes payload format indicator, content type, correlation data with schema, and a response topic with a pattern, along with the binding version. ```yaml channels: userSignup: address: user/signup messages: userSignup: bindings: mqtt: payloadFormatIndicator: 1 contentType: "application/json" correlationData: type: string format: uuid responseTopic: type: string pattern: "response/client/([a-z1-9]+)" bindingVersion: 0.2.0 ``` -------------------------------- ### IBM MQ Channel Binding: Topic String Defined by AsyncAPI Channel Source: https://github.com/asyncapi/bindings/blob/master/ibmmq/README.md This example shows how an AsyncAPI channel name can be directly used as the IBM MQ topic string when no explicit topic string is provided in the binding. ```yaml channels: user/signedup: ``` -------------------------------- ### JMS Channel Binding Example Source: https://github.com/asyncapi/bindings/blob/master/jms/README.md Configure JMS-specific properties for a channel, including destination name, type, and binding version. Use when the channel name differs from the actual JMS destination or to specify message ordering. ```yaml channels: user.signup: description: This application receives command messages from this channel about users to sign up. bindings: jms: destination: user-sign-up destinationType: fifo-queue bindingVersion: '0.0.1' publish: #... ``` -------------------------------- ### JMS Message Binding with Headers Example Source: https://github.com/asyncapi/bindings/blob/master/jms/README.md Define JMS protocol-specific headers within the message binding object, alongside application-specific headers. This is used for headers like JMSMessageID or JMSReplyTo. ```yaml message: messageId: my-message-1 bindings: jms: headers: # JMS protocol specific message headers required: - JMSMessageID properties: JMSMessageID: name: JMSMessageID description: A unique message identifier. This may be set by your JMS Provider on your behalf. type: string JMSReplyTo: name: JMSReplyTo description: The queue or topic that the message sender expects replies to. type: string headers: # Application specific message headers required: - MyToken - MyOperationID properties: MyToken: name: MyToken description: Some sort of identificaton token for the publishing application. type: string MyOperationID: name: MyOperationID description: Some sort of unique identifier for the application operation to perform. type: string ``` -------------------------------- ### IBM MQ Combined Strategy Configuration Source: https://github.com/asyncapi/bindings/blob/master/ibmmq/README.md Utilize a combined strategy for IBM MQ connections, specifying either a CCDT file for queue manager discovery or direct endpoint details. This example shows a CCDT-based configuration for production and a direct endpoint for testing. ```yaml servers: production: url: 'http://my-ccdt-json-file' protocol: ibmmq-secure description: Production MQ Instance bindings: ibmmq: ccdtQueueManagerName: qm1 test: url: ibmmq://qmgrtest:1414/qm2/DEV.APP.SVRCONN protocol: ibmmq-secure description: Test MQ Instance bindings: ibmmq: cipherSpec: ANY_TLS12_OR_HIGHER bindingVersion: 0.1.0 ``` -------------------------------- ### Complete AsyncAPI Document with Anypoint MQ Bindings Source: https://github.com/asyncapi/bindings/blob/master/anypointmq/README.md Illustrates the full usage of Anypoint MQ bindings within an AsyncAPI document, including server and channel configurations. Pay attention to the server host, pathname, and protocol details for different environments. ```yaml asyncapi: 3.0.0 info: title: Example with Anypoint MQ version: 0.0.1 servers: development: host: mq-us-east-1.anypoint.mulesoft.com pathname: /api protocol: anypointmq protocolVersion: v1 description: > Anypoint MQ broker for development, in the US East (N. Virginia) runtime plane under management of the US control plane. security: - $ref: '#/components/securitySchemes/oauthDev' production: host: mq-eu-central-1.anypoint.mulesoft.com pathname: /api protocol: anypointmq protocolVersion: v1 description: > Anypoint MQ broker for production, in the EU Central (Frankfurt) runtime plane under management of the EU control plane. security: - $ref: '#/components/securitySchemes/oauthProd' bindings: anypointmq: bindingVersion: 0.1.0 channels: user/signup: address: user/signup messages: signUpUser.message: contentType: application/json headers: type: object properties: correlationId: description: Correlation ID set by application type: string payload: type: object properties: username: type: string minLength: 3 correlationId: description: >- Correlation ID is specified as a header and transmitted in the Anypoint MQ message properties section location: $message.header#/correlationId bindings: anypointmq: headers: type: object properties: messageId: type: string bindingVersion: 0.1.0 description: > This application receives command messages from this channel about users to sign up. bindings: anypointmq: destination: user-signup-queue destinationType: fifo-queue bindingVersion: 0.1.0 operations: signUpUser: action: receive channel: $ref: '#/channels/user~1signup' description: > This application receives command messages via this operation about users to sign up. messages: - $ref: '#/channels/user~1signup/messages/signUpUser.message' components: securitySchemes: oauthDev: type: oauth2 flows: clientCredentials: tokenUrl: 'https://mq-us-east-1.anypoint.mulesoft.com/api/v1/authorize' scopes: {} oauthProd: type: oauth2 flows: clientCredentials: tokenUrl: 'https://mq-eu-central-1.anypoint.mulesoft.com/api/v1/authorize' scopes: {} ``` -------------------------------- ### MQTT Publish Binding with QoS and Retain Source: https://github.com/asyncapi/bindings/blob/master/mqtt/README.md Use this binding for publish operations to specify Quality of Service (QoS) level, retain flag, message expiry interval, and binding version. ```yaml channels: user/signup: publish: bindings: mqtt: qos: 2 retain: true messageExpiryInterval: 60 bindingVersion: 0.2.0 ``` -------------------------------- ### Define IBM MQ Servers with ibmmq URL Syntax Source: https://github.com/asyncapi/bindings/blob/master/ibmmq/README.md Use the 'ibmmq://' URI scheme to define IBM MQ queue manager endpoints in the AsyncAPI Server Object. Specify hostname, port, queue manager name, and channel name. ```yaml servers: production1: url: ibmmq://qmgr1host:1414/qm1/DEV.APP.SVRCONN protocol: ibmmq production2: url: ibmmq://qmgr2host:1414/qm2/DEV.APP.SVRCONN protocol: ibmmq ``` ```yaml servers: production: url: ibmmq://qmgr1host:1414//DEV.APP.SVRCONN protocol: ibmmq ``` -------------------------------- ### SNS Channel Binding with Minimal Policy Source: https://github.com/asyncapi/bindings/blob/master/sns/3.0.0/README.md Define an SNS channel binding with a minimal policy, specifying only the effect, principal, and action for publishing. ```yaml channels: user-signedup: description: A user has signed up to our service bindings: sns: policy: statements: - effect : Allow principal: * action: SNS:Publish ``` -------------------------------- ### ROS 2 to AsyncAPI Data Type Mapping Source: https://github.com/asyncapi/bindings/blob/master/ros2/README.md Illustrates the mapping between ROS 2 data types and their corresponding AsyncAPI types and formats. Note that the AsyncAPI message header is ignored and should be included in the payload if needed. ```yaml channels: PointCloud: address: /pointCloud messages: CompressedPointCloud2: $ref: "#/components/messages/CompressedPointCloud2" components: CompressedPointCloud2: tags: - name: msg payload: type: object properties: header: $ref: "#/components/messages/std_msgs/header/payload" height: $ref: "#/components/messages/uint32/payload" width: $ref: "#/components/messages/uint32/payload" fields: $ref: "#/components/messages/sensor_msgs/PointField/payload" is_bigendian: $ref: "#/components/messages/bool/payload" point_step: $ref: "#/components/messages/uint32/payload" row_step: $ref: "#/components/messages/uint32/payload" compressed_data: $ref: "#/components/messages/uint8/payload" is_dense: $ref: "#/components/messages/bool/payload" format: $ref: "#/components/messages/string/payload" ``` -------------------------------- ### SQS Producer Binding for Point-to-Point Source: https://github.com/asyncapi/bindings/blob/master/sqs/README.md Defines an SQS queue for a producer in a point-to-point communication. Includes queue name, FIFO settings, receive message wait time, and redrive policy for dead-letter queues. ```yaml channels: user-signedup: bindings: sqs: queue: name: user-signedup-queue fifoQueue: false receiveMessageWaitTime: 4 redrivePolicy: deadLetterQueue: name: user-signedup-dlq policy: statements: - effect : Allow principal: * action: Sqs:SendMessage - effect : Allow principal: * action: Sqs:ReceiveMessage deadLetterQueue: name: user-signedup-dlq messageRetentionPeriod: 1209600 fifoQueue: false ``` -------------------------------- ### AsyncAPI Server Binding for IBM MQ (Secure) Source: https://github.com/asyncapi/bindings/blob/master/ibmmq/README.md Defines a secure IBM MQ server connection. Requires a URL, protocol, group ID, and cipher specification. ```yaml servers: production1: url: ibmmq://qmgr1host:1414/qm1/DEV.APP.SVRCONN protocol: ibmmq-secure description: Production Instance 1 bindings: ibmmq: groupId: PRODCLSTR1 cipherSpec: ANY_TLS12_OR_HIGHER bindingVersion: 0.1.0 production2: url: ibmmq://qmgr2host:1414/qm2/DEV.APP.SVRCONN protocol: ibmmq-secure description: Production Instance 2 bindings: ibmmq: groupId: PRODCLSTR1 cipherSpec: ANY_TLS12_OR_HIGHER bindingVersion: 0.1.0 ``` -------------------------------- ### MQTT Subscribe Binding with QoS Source: https://github.com/asyncapi/bindings/blob/master/mqtt/README.md This binding is for subscribe operations and specifies the Quality of Service (QoS) level and the binding version. ```yaml channels: user/signup: subscribe: bindings: mqtt: qos: 2 bindingVersion: 0.2.0 ``` -------------------------------- ### Define IBM MQ Server with CCDT File URL Source: https://github.com/asyncapi/bindings/blob/master/ibmmq/README.md Specify an IBM MQ CCDT connection file using a URL in the AsyncAPI Server Object. The 'http' or 'file' schemes can be used to reference the CCDT file. ```yaml servers: production1: url: 'http://my-ccdt-json-file' protocol: ibmmq production2: url: 'file://myccdt.json' protocol: ibmmq ``` -------------------------------- ### AsyncAPI Channel Binding for IBM MQ Source: https://github.com/asyncapi/bindings/blob/master/ibmmq/README.md Configures IBM MQ specific settings for a channel, such as enabling durable subscriptions. ```yaml channels: user/signedup: bindings: ibmmq: topic: durablePermitted: true bindingVersion: 0.1.0 ``` -------------------------------- ### Message Binding Object Source: https://github.com/asyncapi/bindings/blob/master/ibmmq/README.md Contains information about the message representation in IBM MQ. ```APIDOC ## Message Binding Object ### Description This object contains information about the message representation in IBM MQ. ``` -------------------------------- ### SNS/SQS Consumer Binding for Pub-Sub Source: https://github.com/asyncapi/bindings/blob/master/sqs/README.md Configures a consumer for a pub-sub channel using both SNS and SQS bindings. It specifies SNS consumers with SQS endpoint details, including filtering and redrive policies, and defines multiple SQS queues for consumption and dead-lettering. ```yaml channels: user-signedup: description: A user has signed up for our service publish: operationId: receiveMessage description: receive messages from the topic bindings: sns: consumers: - protocol: sqs endpoint: name: user-signedup-queue rawMessageDelivery: true filterPolicy: attributes: reason: anything-but: password-reset redrivePolicy: deadLetterQueue: name: user-signedup-queue-dlq sqs: queues: - name: user-signedup-queue fifoQueue: false receiveMessageWaitTime: 4 policy: statements: - effect : Allow principal: * action: Sqs:SendMessage - effect : Allow principal: * action: Sqs:ReceiveMessage - name: user-signedup-dlq messageRetentionPeriod: 1209600 fifoQueue: false ``` -------------------------------- ### Operation Binding Object Source: https://github.com/asyncapi/bindings/blob/master/ibmmq/README.md Reserved for future use. This object MUST NOT contain any properties. ```APIDOC ## Operation Binding Object ### Description This object MUST NOT contain any properties. Its name is reserved for future use. ``` -------------------------------- ### IBM MQ Server Binding Object Source: https://github.com/asyncapi/bindings/blob/master/ibmmq/README.md Defines the properties for an IBM MQ server binding, used to configure connection details for an IBM MQ server. ```APIDOC ## IBM MQ Server Binding ### Description This object defines the properties for an IBM MQ server binding, used to configure connection details for an IBM MQ server. ### Fields - **groupId** (string) - OPTIONAL - The client channel name. - **cipherSpec** (string) - OPTIONAL - The cipher spec to use for TLS connections. - **bindingVersion** (string) - OPTIONAL - The version of this binding. Defaults to `latest`. ### Example ```yaml servers: production1: url: ibmmq://qmgr1host:1414/qm1/DEV.APP.SVRCONN protocol: ibmmq-secure description: Production Instance 1 bindings: ibmmq: groupId: PRODCLSTR1 cipherSpec: ANY_TLS12_OR_HIGHER bindingVersion: 0.1.0 ``` ``` -------------------------------- ### Channel Binding Object Source: https://github.com/asyncapi/bindings/blob/master/ibmmq/README.md Defines properties for binding AsyncAPI channels to IBM MQ topics or queues. ```APIDOC ## Channel Binding Object ### Description Defines properties for binding AsyncAPI channels to IBM MQ topics or queues. ### Properties #### `destinationType` (string) - Optional [`topic`] Defines the type of AsyncAPI channel. Must be either `topic` or `queue`. For type `topic`, the AsyncAPI channel name MUST be assumed for the IBM MQ topic string unless overridden. #### `queue` (Map[string, any]) - Required if `destinationType` = `queue` Defines the properties of a queue. `queue` and `topic` fields MUST NOT coexist within a channel binding. ##### `queue.objectName` (string) - Required Defines the name of the IBM MQ queue associated with the channel. Must be a valid IBM MQ queue name and MUST NOT exceed 48 characters in length. ##### `queue.isPartitioned` (boolean) - Optional [`false`] Defines if the queue is a cluster queue and therefore partitioned. If `true`, a binding option MAY be specified when accessing the queue. If `false`, binding options SHOULD NOT be specified when accessing the queue. ##### `queue.exclusive` (boolean) - Optional [`false`] Specifies if it is recommended to open the queue exclusively. #### `topic` (Map[string, any]) - Optional if `destinationType` = `topic` Defines the properties of a topic. `queue` and `topic` fields MUST NOT coexist within a channel binding. ##### `topic.string` (string) - Optional The value of the IBM MQ topic string to be used. If specified, SHALL override AsyncAPI channel name. MUST NOT exceed 10240 characters in length. MAY coexist with `topic.objectName`. ##### `topic.objectName` (string) - Optional The name of the IBM MQ topic object. If specified, SHALL override AsyncAPI channel name. MUST NOT exceed 48 characters in length. MAY coexist with `topic.string`. ##### `topic.durablePermitted` (boolean) - Optional [`true`] Defines if the subscription may be durable. ##### `topic.lastMsgRetained` (boolean) - Optional [`false`] Defines if the last message published will be made available to new subscriptions. #### `maxMsgLength` (integer) - Optional [negotiated on IBM MQ channel] The maximum length of the physical message (in bytes) accepted by the Topic or Queue. Messages produced that are greater in size than this value may fail to be delivered. MUST be `0-104,857,600` bytes (100 MB). #### `bindingVersion` (string) - Optional [`latest`] The version of this binding. ### Examples #### Example for an IBM MQ Topic where topic string is defined by AsyncAPI channel ```yaml channels: user/signedup: ``` #### Example for AsyncAPI channel mapping to an IBM MQ topic with a specified MQ Topic object ```yaml channels: user/signedup: bindings: ibmmq: destinationType: topic topic: objectName: myTopicName bindingVersion: 0.1.0 ``` #### Example for AsyncAPI channel mapping to an IBM MQ Queue ```yaml channels: user/signedup: bindings: ibmmq: destinationType: queue queue: objectName: myQueueName exclusive: true bindingVersion: 0.1.0 ``` ``` -------------------------------- ### SQS Consumer Binding for Point-to-Point Source: https://github.com/asyncapi/bindings/blob/master/sqs/README.md An empty SQS binding for a consumer in a point-to-point channel. This indicates the consumer will receive messages from the channel, assuming the binding details are defined by the producer. ```yaml channels: user-signedup: publish: operationId: receiveMessage description: receives a messages when a user has signed up bindings: sqs: {} ``` -------------------------------- ### SNS Channel Binding with Default Values Source: https://github.com/asyncapi/bindings/blob/master/sns/3.0.0/README.md Use an empty SNS binding object to mark a channel as an SNS topic while using default values for its properties. ```yaml channels: user-signedup: description: A user has signed up to our service bindings: sns: {} ``` -------------------------------- ### IBM MQ Channel Binding: Queue Configuration Source: https://github.com/asyncapi/bindings/blob/master/ibmmq/README.md Defines an IBM MQ queue binding, specifying the queue name and setting it to be opened exclusively. The binding version is also included. ```yaml channels: user/signedup: bindings: ibmmq: destinationType: queue queue: objectName: myQueueName exclusive: true bindingVersion: 0.1.0 ``` -------------------------------- ### IBM MQ Channel Binding Object Source: https://github.com/asyncapi/bindings/blob/master/ibmmq/README.md Defines the properties for an IBM MQ channel binding, used to configure channel-specific settings. ```APIDOC ## IBM MQ Channel Binding ### Description This object defines the properties for an IBM MQ channel binding, used to configure channel-specific settings. ### Fields - **topic** (object) - OPTIONAL - Configuration for the MQ topic. - **durablePermitted** (boolean) - OPTIONAL - Indicates if durable subscriptions are permitted. - **bindingVersion** (string) - OPTIONAL - The version of this binding. Defaults to `latest`. ### Example ```yaml channels: user/signedup: bindings: ibmmq: topic: durablePermitted: true bindingVersion: 0.1.0 ``` ``` -------------------------------- ### MQTT Publish Binding with Message Expiry Interval Range Source: https://github.com/asyncapi/bindings/blob/master/mqtt/README.md Configure the message expiry interval for publish operations using a range defined by minimum and maximum values, along with the binding version. ```yaml channels: user/signup: publish: bindings: mqtt: messageExpiryInterval: type: integer minimum: 30 maximum: 300 bindingVersion: 0.2.0 ```