UNPKG

@asyncapi/studio

Version:

One place that allows you to develop an AsyncAPI document, validate it, convert it to the latest version, preview the documentation and visualize the events flow.

1 lines 167 kB
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3880],{2125:function(e){e.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema","title":"AsyncAPI 3.1.0 schema.","type":"object","required":["asyncapi","info"],"properties":{"id":{"description":"A unique id representing the application.","type":"string","format":"uri"},"asyncapi":{"description":"The AsyncAPI specification version of this document.","type":"string","const":"3.1.0"},"channels":{"$ref":"#/definitions/channels"},"components":{"$ref":"#/definitions/components"},"defaultContentType":{"description":"Default content type to use when encoding/decoding a message\'s payload.","type":"string"},"info":{"$ref":"#/definitions/info"},"operations":{"$ref":"#/definitions/operations"},"servers":{"$ref":"#/definitions/servers"}},"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"#/definitions/specificationExtension"}},"additionalProperties":false,"definitions":{"channels":{"description":"An object containing all the Channel Object definitions the Application MUST use during runtime.","type":"object","additionalProperties":{"oneOf":[{"$ref":"#/definitions/Reference"},{"$ref":"#/definitions/channel"}]},"examples":[{"userSignedUp":{"address":"user.signedup","messages":{"userSignedUp":{"$ref":"#/components/messages/userSignedUp"}}}}]},"Reference":{"type":"object","description":"A simple object to allow referencing other components in the specification, internally and externally.","required":["$ref"],"properties":{"$ref":{"description":"The reference string.","$ref":"#/definitions/ReferenceObject"}},"examples":[{"$ref":"#/components/schemas/Pet"}]},"ReferenceObject":{"type":"string","format":"uri-reference"},"channel":{"description":"Describes a shared communication channel.","type":"object","properties":{"title":{"description":"A human-friendly title for the channel.","type":"string"},"description":{"description":"A longer description of the channel. CommonMark is allowed.","type":"string"},"address":{"description":"An optional string representation of this channel\'s address. The address is typically the \\"topic name\\", \\"routing key\\", \\"event type\\", or \\"path\\". When `null` or absent, it MUST be interpreted as unknown. This is useful when the address is generated dynamically at runtime or can\'t be known upfront. It MAY contain Channel Address Expressions.","type":["string","null"]},"bindings":{"oneOf":[{"$ref":"#/definitions/Reference"},{"$ref":"#/definitions/channelBindingsObject"}]},"externalDocs":{"oneOf":[{"$ref":"#/definitions/Reference"},{"$ref":"#/definitions/externalDocs"}]},"messages":{"$ref":"#/definitions/channelMessages"},"parameters":{"$ref":"#/definitions/parameters"},"servers":{"description":"The references of the servers on which this channel is available. If absent or empty then this channel must be available on all servers.","type":"array","uniqueItems":true,"items":{"$ref":"#/definitions/Reference"}},"summary":{"description":"A brief summary of the channel.","type":"string"},"tags":{"description":"A list of tags for logical grouping of channels.","type":"array","uniqueItems":true,"items":{"oneOf":[{"$ref":"#/definitions/Reference"},{"$ref":"#/definitions/tag"}]}}},"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"#/definitions/specificationExtension"}},"additionalProperties":false,"examples":[{"address":"users.{userId}","title":"Users channel","description":"This channel is used to exchange messages about user events.","messages":{"userSignedUp":{"$ref":"#/components/messages/userSignedUp"},"userCompletedOrder":{"$ref":"#/components/messages/userCompletedOrder"}},"parameters":{"userId":{"$ref":"#/components/parameters/userId"}},"servers":[{"$ref":"#/servers/rabbitmqInProd"},{"$ref":"#/servers/rabbitmqInStaging"}],"bindings":{"amqp":{"is":"queue","queue":{"exclusive":true}}},"tags":[{"name":"user","description":"User-related messages"}],"externalDocs":{"description":"Find more info here","url":"https://example.com"}}]},"channelBindingsObject":{"description":"Map describing protocol-specific definitions for a channel.","type":"object","properties":{"amqp":{"allOf":[{"description":"If no bindingVersion specified, use the latest binding","if":{"not":{"required":["bindingVersion"]}},"then":{"$ref":"#/definitions/bindings-amqp-0.3.0-channel"}},{"if":{"required":["bindingVersion"],"properties":{"bindingVersion":{"const":"0.3.0"}}},"then":{"$ref":"#/definitions/bindings-amqp-0.3.0-channel"}}],"properties":{"bindingVersion":{"enum":["0.3.0"]}}},"amqp1":{},"anypointmq":{"allOf":[{"description":"If no bindingVersion specified, use the latest binding","if":{"not":{"required":["bindingVersion"]}},"then":{"$ref":"#/definitions/bindings-anypointmq-0.0.1-channel"}},{"if":{"required":["bindingVersion"],"properties":{"bindingVersion":{"const":"0.0.1"}}},"then":{"$ref":"#/definitions/bindings-anypointmq-0.0.1-channel"}}],"properties":{"bindingVersion":{"enum":["0.0.1"]}}},"googlepubsub":{"allOf":[{"description":"If no bindingVersion specified, use the latest binding","if":{"not":{"required":["bindingVersion"]}},"then":{"$ref":"#/definitions/bindings-googlepubsub-0.2.0-channel"}},{"if":{"required":["bindingVersion"],"properties":{"bindingVersion":{"const":"0.2.0"}}},"then":{"$ref":"#/definitions/bindings-googlepubsub-0.2.0-channel"}}],"properties":{"bindingVersion":{"enum":["0.2.0"]}}},"http":{},"ibmmq":{"allOf":[{"description":"If no bindingVersion specified, use the latest binding","if":{"not":{"required":["bindingVersion"]}},"then":{"$ref":"#/definitions/bindings-ibmmq-0.1.0-channel"}},{"if":{"required":["bindingVersion"],"properties":{"bindingVersion":{"const":"0.1.0"}}},"then":{"$ref":"#/definitions/bindings-ibmmq-0.1.0-channel"}}],"properties":{"bindingVersion":{"enum":["0.1.0"]}}},"jms":{"allOf":[{"description":"If no bindingVersion specified, use the latest binding","if":{"not":{"required":["bindingVersion"]}},"then":{"$ref":"#/definitions/bindings-jms-0.0.1-channel"}},{"if":{"required":["bindingVersion"],"properties":{"bindingVersion":{"const":"0.0.1"}}},"then":{"$ref":"#/definitions/bindings-jms-0.0.1-channel"}}],"properties":{"bindingVersion":{"enum":["0.0.1"]}}},"kafka":{"allOf":[{"description":"If no bindingVersion specified, use the latest binding","if":{"not":{"required":["bindingVersion"]}},"then":{"$ref":"#/definitions/bindings-kafka-0.5.0-channel"}},{"if":{"required":["bindingVersion"],"properties":{"bindingVersion":{"const":"0.5.0"}}},"then":{"$ref":"#/definitions/bindings-kafka-0.5.0-channel"}},{"if":{"required":["bindingVersion"],"properties":{"bindingVersion":{"const":"0.4.0"}}},"then":{"$ref":"#/definitions/bindings-kafka-0.4.0-channel"}},{"if":{"required":["bindingVersion"],"properties":{"bindingVersion":{"const":"0.3.0"}}},"then":{"$ref":"#/definitions/bindings-kafka-0.3.0-channel"}}],"properties":{"bindingVersion":{"enum":["0.5.0","0.4.0","0.3.0"]}}},"mqtt":{},"nats":{},"pulsar":{"allOf":[{"description":"If no bindingVersion specified, use the latest binding","if":{"not":{"required":["bindingVersion"]}},"then":{"$ref":"#/definitions/bindings-pulsar-0.1.0-channel"}},{"if":{"required":["bindingVersion"],"properties":{"bindingVersion":{"const":"0.1.0"}}},"then":{"$ref":"#/definitions/bindings-pulsar-0.1.0-channel"}}],"properties":{"bindingVersion":{"enum":["0.1.0"]}}},"redis":{},"sns":{"allOf":[{"description":"If no bindingVersion specified, use the latest binding","if":{"not":{"required":["bindingVersion"]}},"then":{"$ref":"#/definitions/bindings-sns-0.1.0-channel"}},{"if":{"required":["bindingVersion"],"properties":{"bindingVersion":{"const":"0.1.0"}}},"then":{"$ref":"#/definitions/bindings-sns-0.1.0-channel"}}],"properties":{"bindingVersion":{"enum":["0.1.0"]}}},"solace":{},"sqs":{"allOf":[{"description":"If no bindingVersion specified, use the latest binding","if":{"not":{"required":["bindingVersion"]}},"then":{"$ref":"#/definitions/bindings-sqs-0.2.0-channel"}},{"if":{"required":["bindingVersion"],"properties":{"bindingVersion":{"const":"0.2.0"}}},"then":{"$ref":"#/definitions/bindings-sqs-0.2.0-channel"}}],"properties":{"bindingVersion":{"enum":["0.2.0"]}}},"stomp":{},"ws":{"allOf":[{"description":"If no bindingVersion specified, use the latest binding","if":{"not":{"required":["bindingVersion"]}},"then":{"$ref":"#/definitions/bindings-websockets-0.1.0-channel"}},{"if":{"required":["bindingVersion"],"properties":{"bindingVersion":{"const":"0.1.0"}}},"then":{"$ref":"#/definitions/bindings-websockets-0.1.0-channel"}}],"properties":{"bindingVersion":{"enum":["0.1.0"]}}}},"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"#/definitions/specificationExtension"}},"additionalProperties":false},"bindings-amqp-0.3.0-channel":{"title":"AMQP channel bindings object","description":"This object contains information about the channel representation in AMQP.","type":"object","additionalProperties":false,"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"#/definitions/specificationExtension"}},"properties":{"is":{"type":"string","enum":["queue","routingKey"],"description":"Defines what type of channel is it. Can be either \'queue\' or \'routingKey\' (default)."},"exchange":{"type":"object","properties":{"name":{"type":"string","maxLength":255,"description":"The name of the exchange. It MUST NOT exceed 255 characters long."},"type":{"type":"string","enum":["topic","direct","fanout","default","headers"],"description":"The type of the exchange. Can be either \'topic\', \'direct\', \'fanout\', \'default\' or \'headers\'."},"durable":{"type":"boolean","description":"Whether the exchange should survive broker restarts or not."},"autoDelete":{"type":"boolean","description":"Whether the exchange should be deleted when the last queue is unbound from it."},"vhost":{"type":"string","default":"/","description":"The virtual host of the exchange. Defaults to \'/\'."}},"description":"When is=routingKey, this object defines the exchange properties."},"queue":{"type":"object","properties":{"name":{"type":"string","maxLength":255,"description":"The name of the queue. It MUST NOT exceed 255 characters long."},"durable":{"type":"boolean","description":"Whether the queue should survive broker restarts or not."},"exclusive":{"type":"boolean","description":"Whether the queue should be used only by one connection or not."},"autoDelete":{"type":"boolean","description":"Whether the queue should be deleted when the last consumer unsubscribes."},"vhost":{"type":"string","default":"/","description":"The virtual host of the queue. Defaults to \'/\'."}},"description":"When is=queue, this object defines the queue properties."},"bindingVersion":{"type":"string","enum":["0.3.0"],"description":"The version of this binding. If omitted, \'latest\' MUST be assumed."}},"oneOf":[{"properties":{"is":{"const":"routingKey"}},"required":["exchange"],"not":{"required":["queue"]}},{"properties":{"is":{"const":"queue"}},"required":["queue"],"not":{"required":["exchange"]}}],"examples":[{"is":"routingKey","exchange":{"name":"myExchange","type":"topic","durable":true,"autoDelete":false,"vhost":"/"},"bindingVersion":"0.3.0"},{"is":"queue","queue":{"name":"my-queue-name","durable":true,"exclusive":true,"autoDelete":false,"vhost":"/"},"bindingVersion":"0.3.0"}]},"specificationExtension":{"description":"Any property starting with x- is valid.","additionalItems":true,"additionalProperties":true},"bindings-anypointmq-0.0.1-channel":{"title":"Anypoint MQ channel bindings object","description":"This object contains configuration for describing an Anypoint MQ exchange, queue, or FIFO queue as an AsyncAPI channel. This objects only contains configuration that can not be provided in the AsyncAPI standard channel object.","type":"object","additionalProperties":false,"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"#/definitions/specificationExtension"}},"properties":{"destination":{"type":"string","description":"The destination (queue or exchange) name for this channel. SHOULD only be specified if the channel name differs from the actual destination name, such as when the channel name is not a valid destination name in Anypoint MQ. Defaults to the channel name."},"destinationType":{"type":"string","enum":["exchange","queue","fifo-queue"],"default":"queue","description":"The type of destination. SHOULD be specified to document the messaging model (publish/subscribe, point-to-point, strict message ordering) supported by this channel."},"bindingVersion":{"type":"string","enum":["0.0.1"],"description":"The version of this binding. If omitted, \'latest\' MUST be assumed."}},"examples":[{"destination":"user-signup-exchg","destinationType":"exchange","bindingVersion":"0.0.1"}]},"bindings-googlepubsub-0.2.0-channel":{"title":"Cloud Pub/Sub Channel Schema","description":"This object contains information about the channel representation for Google Cloud Pub/Sub.","type":"object","additionalProperties":false,"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"#/definitions/specificationExtension"}},"properties":{"bindingVersion":{"type":"string","enum":["0.2.0"],"description":"The version of this binding."},"labels":{"type":"object"},"messageRetentionDuration":{"type":"string"},"messageStoragePolicy":{"type":"object","additionalProperties":false,"properties":{"allowedPersistenceRegions":{"type":"array","items":{"type":"string"}}}},"schemaSettings":{"type":"object","additionalItems":false,"properties":{"encoding":{"type":"string"},"firstRevisionId":{"type":"string"},"lastRevisionId":{"type":"string"},"name":{"type":"string"}},"required":["encoding","name"]}},"required":["schemaSettings"],"examples":[{"labels":{"label1":"value1","label2":"value2"},"messageRetentionDuration":"86400s","messageStoragePolicy":{"allowedPersistenceRegions":["us-central1","us-east1"]},"schemaSettings":{"encoding":"json","name":"projects/your-project-id/schemas/your-schema"}}]},"bindings-ibmmq-0.1.0-channel":{"title":"IBM MQ channel bindings object","description":"This object contains information about the channel representation in IBM MQ. Each channel corresponds to a Queue or Topic within IBM MQ.","type":"object","additionalProperties":false,"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"#/definitions/specificationExtension"}},"properties":{"destinationType":{"type":"string","enum":["topic","queue"],"default":"topic","description":"Defines the type of AsyncAPI channel."},"queue":{"type":"object","description":"Defines the properties of a queue.","properties":{"objectName":{"type":"string","maxLength":48,"description":"Defines the name of the IBM MQ queue associated with the channel."},"isPartitioned":{"type":"boolean","default":false,"description":"Defines if the queue is a cluster queue and therefore partitioned. If \'true\', a binding option MAY be specified when accessing the queue. More information on binding options can be found on this page in the IBM MQ Knowledge Center."},"exclusive":{"type":"boolean","default":false,"description":"Specifies if it is recommended to open the queue exclusively."}},"required":["objectName"]},"topic":{"type":"object","description":"Defines the properties of a topic.","properties":{"string":{"type":"string","maxLength":10240,"description":"The value of the IBM MQ topic string to be used."},"objectName":{"type":"string","maxLength":48,"description":"The name of the IBM MQ topic object."},"durablePermitted":{"type":"boolean","default":true,"description":"Defines if the subscription may be durable."},"lastMsgRetained":{"type":"boolean","default":false,"description":"Defines if the last message published will be made available to new subscriptions."}}},"maxMsgLength":{"type":"integer","minimum":0,"maximum":104857600,"description":"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. More information on the maximum message length can be found on this [page](https://www.ibm.com/support/knowledgecenter/SSFKSJ_latest/com.ibm.mq.ref.dev.doc/q097520_.html) in the IBM MQ Knowledge Center."},"bindingVersion":{"type":"string","enum":["0.1.0"],"description":"The version of this binding."}},"oneOf":[{"properties":{"destinationType":{"const":"topic"}},"not":{"required":["queue"]}},{"properties":{"destinationType":{"const":"queue"}},"required":["queue"],"not":{"required":["topic"]}}],"examples":[{"destinationType":"topic","topic":{"objectName":"myTopicName"},"bindingVersion":"0.1.0"},{"destinationType":"queue","queue":{"objectName":"myQueueName","exclusive":true},"bindingVersion":"0.1.0"}]},"bindings-jms-0.0.1-channel":{"title":"Channel Schema","description":"This object contains configuration for describing a JMS queue, or FIFO queue as an AsyncAPI channel. This objects only contains configuration that can not be provided in the AsyncAPI standard channel object.","type":"object","additionalProperties":false,"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"#/definitions/specificationExtension"}},"properties":{"destination":{"type":"string","description":"The destination (queue) name for this channel. SHOULD only be specified if the channel name differs from the actual destination name, such as when the channel name is not a valid destination name according to the JMS Provider. Defaults to the channel name."},"destinationType":{"type":"string","enum":["queue","fifo-queue"],"default":"queue","description":"The type of destination. SHOULD be specified to document the messaging model (point-to-point, or strict message ordering) supported by this channel."},"bindingVersion":{"type":"string","enum":["0.0.1"],"description":"The version of this binding. If omitted, \'latest\' MUST be assumed."}},"examples":[{"destination":"user-signed-up","destinationType":"fifo-queue","bindingVersion":"0.0.1"}]},"bindings-kafka-0.5.0-channel":{"title":"Channel Schema","description":"This object contains information about the channel representation in Kafka.","type":"object","additionalProperties":false,"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"#/definitions/specificationExtension"}},"properties":{"topic":{"type":"string","description":"Kafka topic name if different from channel name."},"partitions":{"type":"integer","minimum":1,"description":"Number of partitions configured on this topic."},"replicas":{"type":"integer","minimum":1,"description":"Number of replicas configured on this topic."},"topicConfiguration":{"description":"Topic configuration properties that are relevant for the API.","type":"object","additionalProperties":true,"properties":{"cleanup.policy":{"description":"The [`cleanup.policy`](https://kafka.apache.org/documentation/#topicconfigs_cleanup.policy) configuration option.","type":"array","items":{"type":"string","enum":["compact","delete"]}},"retention.ms":{"description":"The [`retention.ms`](https://kafka.apache.org/documentation/#topicconfigs_retention.ms) configuration option.","type":"integer","minimum":-1},"retention.bytes":{"description":"The [`retention.bytes`](https://kafka.apache.org/documentation/#topicconfigs_retention.bytes) configuration option.","type":"integer","minimum":-1},"delete.retention.ms":{"description":"The [`delete.retention.ms`](https://kafka.apache.org/documentation/#topicconfigs_delete.retention.ms) configuration option.","type":"integer","minimum":0},"max.message.bytes":{"description":"The [`max.message.bytes`](https://kafka.apache.org/documentation/#topicconfigs_max.message.bytes) configuration option.","type":"integer","minimum":0},"confluent.key.schema.validation":{"description":"It shows whether the schema validation for the message key is enabled. Vendor specific config. For more details: (https://docs.confluent.io/platform/current/installation/configuration/topic-configs.html#confluent-key-schema-validation)","type":"boolean"},"confluent.key.subject.name.strategy":{"description":"The name of the schema lookup strategy for the message key. Vendor specific config. For more details: (https://docs.confluent.io/platform/current/installation/configuration/topic-configs.html#confluent-key-subject-name-strategy)","type":"string"},"confluent.value.schema.validation":{"description":"It shows whether the schema validation for the message value is enabled. Vendor specific config. For more details: (https://docs.confluent.io/platform/current/installation/configuration/topic-configs.html#confluent-value-schema-validation)","type":"boolean"},"confluent.value.subject.name.strategy":{"description":"The name of the schema lookup strategy for the message value. Vendor specific config. For more details: (https://docs.confluent.io/platform/current/installation/configuration/topic-configs.html#confluent-value-subject-name-strategy)","type":"string"}}},"bindingVersion":{"type":"string","enum":["0.5.0"],"description":"The version of this binding. If omitted, \'latest\' MUST be assumed."}},"examples":[{"topic":"my-specific-topic","partitions":20,"replicas":3,"bindingVersion":"0.5.0"}]},"bindings-kafka-0.4.0-channel":{"title":"Channel Schema","description":"This object contains information about the channel representation in Kafka.","type":"object","additionalProperties":false,"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"#/definitions/specificationExtension"}},"properties":{"topic":{"type":"string","description":"Kafka topic name if different from channel name."},"partitions":{"type":"integer","minimum":1,"description":"Number of partitions configured on this topic."},"replicas":{"type":"integer","minimum":1,"description":"Number of replicas configured on this topic."},"topicConfiguration":{"description":"Topic configuration properties that are relevant for the API.","type":"object","additionalProperties":false,"properties":{"cleanup.policy":{"description":"The [`cleanup.policy`](https://kafka.apache.org/documentation/#topicconfigs_cleanup.policy) configuration option.","type":"array","items":{"type":"string","enum":["compact","delete"]}},"retention.ms":{"description":"The [`retention.ms`](https://kafka.apache.org/documentation/#topicconfigs_retention.ms) configuration option.","type":"integer","minimum":-1},"retention.bytes":{"description":"The [`retention.bytes`](https://kafka.apache.org/documentation/#topicconfigs_retention.bytes) configuration option.","type":"integer","minimum":-1},"delete.retention.ms":{"description":"The [`delete.retention.ms`](https://kafka.apache.org/documentation/#topicconfigs_delete.retention.ms) configuration option.","type":"integer","minimum":0},"max.message.bytes":{"description":"The [`max.message.bytes`](https://kafka.apache.org/documentation/#topicconfigs_max.message.bytes) configuration option.","type":"integer","minimum":0}}},"bindingVersion":{"type":"string","enum":["0.4.0"],"description":"The version of this binding. If omitted, \'latest\' MUST be assumed."}},"examples":[{"topic":"my-specific-topic","partitions":20,"replicas":3,"bindingVersion":"0.4.0"}]},"bindings-kafka-0.3.0-channel":{"title":"Channel Schema","description":"This object contains information about the channel representation in Kafka.","type":"object","additionalProperties":false,"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"#/definitions/specificationExtension"}},"properties":{"topic":{"type":"string","description":"Kafka topic name if different from channel name."},"partitions":{"type":"integer","minimum":1,"description":"Number of partitions configured on this topic."},"replicas":{"type":"integer","minimum":1,"description":"Number of replicas configured on this topic."},"bindingVersion":{"type":"string","enum":["0.3.0"],"description":"The version of this binding. If omitted, \'latest\' MUST be assumed."}},"examples":[{"topic":"my-specific-topic","partitions":20,"replicas":3,"bindingVersion":"0.3.0"}]},"bindings-pulsar-0.1.0-channel":{"title":"Channel Schema","description":"This object contains information about the channel representation in Pulsar, which covers namespace and topic level admin configuration. This object contains additional information not possible to represent within the core AsyncAPI specification.","type":"object","additionalProperties":false,"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"#/definitions/specificationExtension"}},"required":["namespace","persistence"],"properties":{"namespace":{"type":"string","description":"The namespace, the channel is associated with."},"persistence":{"type":"string","enum":["persistent","non-persistent"],"description":"persistence of the topic in Pulsar."},"compaction":{"type":"integer","minimum":0,"description":"Topic compaction threshold given in MB"},"geo-replication":{"type":"array","description":"A list of clusters the topic is replicated to.","items":{"type":"string"}},"retention":{"type":"object","additionalProperties":false,"properties":{"time":{"type":"integer","minimum":0,"description":"Time given in Minutes. `0` = Disable message retention."},"size":{"type":"integer","minimum":0,"description":"Size given in MegaBytes. `0` = Disable message retention."}}},"ttl":{"type":"integer","description":"TTL in seconds for the specified topic"},"deduplication":{"type":"boolean","description":"Whether deduplication of events is enabled or not."},"bindingVersion":{"type":"string","enum":["0.1.0"],"description":"The version of this binding. If omitted, \'latest\' MUST be assumed."}},"examples":[{"namespace":"ns1","persistence":"persistent","compaction":1000,"retention":{"time":15,"size":1000},"ttl":360,"geo-replication":["us-west","us-east"],"deduplication":true,"bindingVersion":"0.1.0"}]},"bindings-sns-0.1.0-channel":{"title":"Channel Schema","description":"This object contains information about the channel representation in SNS.","type":"object","additionalProperties":false,"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"#/definitions/specificationExtension"}},"properties":{"name":{"type":"string","description":"The name of the topic. Can be different from the channel name to allow flexibility around AWS resource naming limitations."},"ordering":{"$ref":"#/definitions/bindings-sns-0.1.0-channel/definitions/ordering"},"policy":{"$ref":"#/definitions/bindings-sns-0.1.0-channel/definitions/policy"},"tags":{"type":"object","description":"Key-value pairs that represent AWS tags on the topic."},"bindingVersion":{"type":"string","description":"The version of this binding.","default":"latest"}},"required":["name"],"definitions":{"ordering":{"type":"object","description":"By default, we assume an unordered SNS topic. This field allows configuration of a FIFO SNS Topic.","patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"#/definitions/specificationExtension"}},"properties":{"type":{"type":"string","description":"Defines the type of SNS Topic.","enum":["standard","FIFO"]},"contentBasedDeduplication":{"type":"boolean","description":"True to turn on de-duplication of messages for a channel."}},"required":["type"]},"policy":{"type":"object","description":"The security policy for the SNS Topic.","patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"#/definitions/specificationExtension"}},"properties":{"statements":{"type":"array","description":"An array of statement objects, each of which controls a permission for this topic","items":{"$ref":"#/definitions/bindings-sns-0.1.0-channel/definitions/statement"}}},"required":["statements"]},"statement":{"type":"object","patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"#/definitions/specificationExtension"}},"properties":{"effect":{"type":"string","enum":["Allow","Deny"]},"principal":{"description":"The AWS account or resource ARN that this statement applies to.","oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"action":{"description":"The SNS permission being allowed or denied e.g. sns:Publish","oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"required":["effect","principal","action"]}},"examples":[{"name":"my-sns-topic","policy":{"statements":[{"effect":"Allow","principal":"*","action":"SNS:Publish"}]}}]},"bindings-sqs-0.2.0-channel":{"title":"Channel Schema","description":"This object contains information about the channel representation in SQS.","type":"object","additionalProperties":false,"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"#/definitions/specificationExtension"}},"properties":{"queue":{"description":"A definition of the queue that will be used as the channel.","$ref":"#/definitions/bindings-sqs-0.2.0-channel/definitions/queue"},"deadLetterQueue":{"description":"A definition of the queue that will be used for un-processable messages.","$ref":"#/definitions/bindings-sqs-0.2.0-channel/definitions/queue"},"bindingVersion":{"type":"string","enum":["0.1.0","0.2.0"],"description":"The version of this binding. If omitted, \'latest\' MUST be assumed.","default":"latest"}},"required":["queue"],"definitions":{"queue":{"type":"object","description":"A definition of a queue.","patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"#/definitions/specificationExtension"}},"properties":{"name":{"type":"string","description":"The name of the queue. When an SNS Operation Binding Object references an SQS queue by name, the identifier should be the one in this field."},"fifoQueue":{"type":"boolean","description":"Is this a FIFO queue?","default":false},"deduplicationScope":{"type":"string","enum":["queue","messageGroup"],"description":"Specifies whether message deduplication occurs at the message group or queue level. Valid values are messageGroup and queue (default).","default":"queue"},"fifoThroughputLimit":{"type":"string","enum":["perQueue","perMessageGroupId"],"description":"Specifies whether the FIFO queue throughput quota applies to the entire queue or per message group. Valid values are perQueue (default) and perMessageGroupId.","default":"perQueue"},"deliveryDelay":{"type":"integer","description":"The number of seconds to delay before a message sent to the queue can be received. used to create a delay queue.","minimum":0,"maximum":900,"default":0},"visibilityTimeout":{"type":"integer","description":"The length of time, in seconds, that a consumer locks a message - hiding it from reads - before it is unlocked and can be read again.","minimum":0,"maximum":43200,"default":30},"receiveMessageWaitTime":{"type":"integer","description":"Determines if the queue uses short polling or long polling. Set to zero the queue reads available messages and returns immediately. Set to a non-zero integer, long polling waits the specified number of seconds for messages to arrive before returning.","default":0},"messageRetentionPeriod":{"type":"integer","description":"How long to retain a message on the queue in seconds, unless deleted.","minimum":60,"maximum":1209600,"default":345600},"redrivePolicy":{"$ref":"#/definitions/bindings-sqs-0.2.0-channel/definitions/redrivePolicy"},"policy":{"$ref":"#/definitions/bindings-sqs-0.2.0-channel/definitions/policy"},"tags":{"type":"object","description":"Key-value pairs that represent AWS tags on the queue."}},"required":["name","fifoQueue"]},"redrivePolicy":{"type":"object","description":"Prevent poison pill messages by moving un-processable messages to an SQS dead letter queue.","patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"#/definitions/specificationExtension"}},"properties":{"deadLetterQueue":{"$ref":"#/definitions/bindings-sqs-0.2.0-channel/definitions/identifier"},"maxReceiveCount":{"type":"integer","description":"The number of times a message is delivered to the source queue before being moved to the dead-letter queue.","default":10}},"required":["deadLetterQueue"]},"identifier":{"type":"object","description":"The SQS queue to use as a dead letter queue (DLQ).","patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"#/definitions/specificationExtension"}},"properties":{"arn":{"type":"string","description":"The target is an ARN. For example, for SQS, the identifier may be an ARN, which will be of the form: arn:aws:sqs:{region}:{account-id}:{queueName}"},"name":{"type":"string","description":"The endpoint is identified by a name, which corresponds to an identifying field called \'name\' of a binding for that protocol on this publish Operation Object. For example, if the protocol is \'sqs\' then the name refers to the name field sqs binding."}}},"policy":{"type":"object","description":"The security policy for the SQS Queue","patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"#/definitions/specificationExtension"}},"properties":{"statements":{"type":"array","description":"An array of statement objects, each of which controls a permission for this queue.","items":{"$ref":"#/definitions/bindings-sqs-0.2.0-channel/definitions/statement"}}},"required":["statements"]},"statement":{"type":"object","patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"#/definitions/specificationExtension"}},"properties":{"effect":{"type":"string","enum":["Allow","Deny"]},"principal":{"description":"The AWS account or resource ARN that this statement applies to.","oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"action":{"description":"The SQS permission being allowed or denied e.g. sqs:ReceiveMessage","oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"required":["effect","principal","action"]}},"examples":[{"queue":{"name":"myQueue","fifoQueue":true,"deduplicationScope":"messageGroup","fifoThroughputLimit":"perMessageGroupId","deliveryDelay":15,"visibilityTimeout":60,"receiveMessageWaitTime":0,"messageRetentionPeriod":86400,"redrivePolicy":{"deadLetterQueue":{"arn":"arn:aws:SQS:eu-west-1:0000000:123456789"},"maxReceiveCount":15},"policy":{"statements":[{"effect":"Deny","principal":"arn:aws:iam::123456789012:user/dec.kolakowski","action":["sqs:SendMessage","sqs:ReceiveMessage"]}]},"tags":{"owner":"AsyncAPI.NET","platform":"AsyncAPIOrg"}},"deadLetterQueue":{"name":"myQueue_error","deliveryDelay":0,"visibilityTimeout":0,"receiveMessageWaitTime":0,"messageRetentionPeriod":604800}}]},"bindings-websockets-0.1.0-channel":{"title":"WebSockets channel bindings object","description":"When using WebSockets, the channel represents the connection. Unlike other protocols that support multiple virtual channels (topics, routing keys, etc.) per connection, WebSockets doesn\'t support virtual channels or, put it another way, there\'s only one channel and its characteristics are strongly related to the protocol used for the handshake, i.e., HTTP.","type":"object","additionalProperties":false,"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"#/definitions/specificationExtension"}},"properties":{"method":{"type":"string","enum":["GET","POST"],"description":"The HTTP method to use when establishing the connection. Its value MUST be either \'GET\' or \'POST\'."},"query":{"oneOf":[{"$ref":"#/definitions/schema"},{"$ref":"#/definitions/Reference"}],"description":"A Schema object containing the definitions for each query parameter. This schema MUST be of type \'object\' and have a \'properties\' key."},"headers":{"oneOf":[{"$ref":"#/definitions/schema"},{"$ref":"#/definitions/Reference"}],"description":"A Schema object containing the definitions of the HTTP headers to use when establishing the connection. This schema MUST be of type \'object\' and have a \'properties\' key."},"bindingVersion":{"type":"string","enum":["0.1.0"],"description":"The version of this binding. If omitted, \'latest\' MUST be assumed."}},"examples":[{"method":"POST","bindingVersion":"0.1.0"}]},"schema":{"description":"The Schema Object allows the definition of input and output data types. These types can be objects, but also primitives and arrays. This object is a superset of the JSON Schema Specification Draft 07. The empty schema (which allows any instance to validate) MAY be represented by the boolean value true and a schema which allows no instance to validate MAY be represented by the boolean value false.","allOf":[{"$ref":"#/definitions/json-schema-draft-07-schema"},{"properties":{"deprecated":{"description":"Specifies that a schema is deprecated and SHOULD be transitioned out of usage. Default value is false.","default":false,"type":"boolean"},"allOf":{"type":"array","minItems":1,"items":{"$ref":"#/definitions/schema"}},"anyOf":{"type":"array","minItems":1,"items":{"$ref":"#/definitions/schema"}},"oneOf":{"type":"array","minItems":1,"items":{"$ref":"#/definitions/schema"}},"not":{"$ref":"#/definitions/schema"},"contains":{"$ref":"#/definitions/schema"},"items":{"default":{},"anyOf":[{"$ref":"#/definitions/schema"},{"type":"array","minItems":1,"items":{"$ref":"#/definitions/schema"}}]},"propertyNames":{"$ref":"#/definitions/schema"},"properties":{"default":{},"type":"object","additionalProperties":{"$ref":"#/definitions/schema"}},"patternProperties":{"default":{},"type":"object","additionalProperties":{"$ref":"#/definitions/schema"}},"additionalProperties":{"default":{},"anyOf":[{"$ref":"#/definitions/schema"},{"type":"boolean"}]},"discriminator":{"description":"Adds support for polymorphism. The discriminator is the schema property name that is used to differentiate between other schema that inherit this schema. The property name used MUST be defined at this schema and it MUST be in the required property list. When used, the value MUST be the name of this schema or any schema that inherits it. See Composition and Inheritance for more details.","type":"string"},"externalDocs":{"oneOf":[{"$ref":"#/definitions/Reference"},{"$ref":"#/definitions/externalDocs"}]}},"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"#/definitions/specificationExtension"}}}]},"json-schema-draft-07-schema":{"title":"Core schema meta-schema","definitions":{"schemaArray":{"type":"array","minItems":1,"items":{"$ref":"#/definitions/json-schema-draft-07-schema"}},"nonNegativeInteger":{"type":"integer","minimum":0},"nonNegativeIntegerDefault0":{"allOf":[{"$ref":"#/definitions/json-schema-draft-07-schema/definitions/nonNegativeInteger"},{"default":0}]},"simpleTypes":{"enum":["array","boolean","integer","null","number","object","string"]},"stringArray":{"type":"array","items":{"type":"string"},"uniqueItems":true,"default":[]}},"type":["object","boolean"],"properties":{"$id":{"type":"string","format":"uri-reference"},"$schema":{"type":"string","format":"uri"},"$ref":{"type":"string","format":"uri-reference"},"$comment":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"default":true,"readOnly":{"type":"boolean","default":false},"writeOnly":{"type":"boolean","default":false},"examples":{"type":"array","items":true},"multipleOf":{"type":"number","exclusiveMinimum":0},"maximum":{"type":"number"},"exclusiveMaximum":{"type":"number"},"minimum":{"type":"number"},"exclusiveMinimum":{"type":"number"},"maxLength":{"$ref":"#/definitions/json-schema-draft-07-schema/definitions/nonNegativeInteger"},"minLength":{"$ref":"#/definitions/json-schema-draft-07-schema/definitions/nonNegativeIntegerDefault0"},"pattern":{"type":"string","format":"regex"},"additionalItems":{"$ref":"#/definitions/json-schema-draft-07-schema"},"items":{"anyOf":[{"$ref":"#/definitions/json-schema-draft-07-schema"},{"$ref":"#/definitions/json-schema-draft-07-schema/definitions/schemaArray"}],"default":true},"maxItems":{"$ref":"#/definitions/json-schema-draft-07-schema/definitions/nonNegativeInteger"},"minItems":{"$ref":"#/definitions/json-schema-draft-07-schema/definitions/nonNegativeIntegerDefault0"},"uniqueItems":{"type":"boolean","default":false},"contains":{"$ref":"#/definitions/json-schema-draft-07-schema"},"maxProperties":{"$ref":"#/definitions/json-schema-draft-07-schema/definitions/nonNegativeInteger"},"minProperties":{"$ref":"#/definitions/json-schema-draft-07-schema/definitions/nonNegativeIntegerDefault0"},"required":{"$ref":"#/definitions/json-schema-draft-07-schema/definitions/stringArray"},"additionalProperties":{"$ref":"#/definitions/json-schema-draft-07-schema"},"definitions":{"type":"object","additionalProperties":{"$ref":"#/definitions/json-schema-draft-07-schema"},"default":{}},"properties":{"type":"object","additionalProperties":{"$ref":"#/definitions/json-schema-draft-07-schema"},"default":{}},"patternProperties":{"type":"object","additionalProperties":{"$ref":"#/definitions/json-schema-draft-07-schema"},"propertyNames":{"format":"regex"},"default":{}},"dependencies":{"type":"object","additionalProperties":{"anyOf":[{"$ref":"#/definitions/json-schema-draft-07-schema"},{"$ref":"#/definitions/json-schema-draft-07-schema/definitions/stringArray"}]}},"propertyNames":{"$ref":"#/definitions/json-schema-draft-07-schema"},"const":true,"enum":{"type":"array","items":true,"minItems":1,"uniqueItems":true},"type":{"anyOf":[{"$ref":"#/definitions/json-schema-draft-07-schema/definitions/simpleTypes"},{"type":"array","items":{"$ref":"#/definitions/json-schema-draft-07-schema/definitions/simpleTypes"},"minItems":1,"uniqueItems":true}]},"format":{"type":"string"},"contentMediaType":{"type":"string"},"contentEncoding":{"type":"string"},"if":{"$ref":"#/definitions/json-schema-draft-07-schema"},"then":{"$ref":"#/definitions/json-schema-draft-07-schema"},"else":{"$ref":"#/definitions/json-schema-draft-07-schema"},"allOf":{"$ref":"#/definitions/json-schema-draft-07-schema/definitions/schemaArray"},"anyOf":{"$ref":"#/definitions/json-schema-draft-07-schema/definitions/schemaArray"},"oneOf":{"$ref":"#/definitions/json-schema-draft-07-schema/definitions/schemaArray"},"not":{"$ref":"#/definitions/json-schema-draft-07-schema"}},"default":true},"externalDocs":{"description":"Allows referencing an external resource for extended documentation.","type":"object","required":["url"],"properties":{"description":{"description":"A short description of the target documentation. CommonMark syntax can be used for rich text representation.","type":"string"},"url":{"description":"The URL for the target documentation. This MUST be in the form of an absolute URL.","type":"string","format":"uri"}},"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"#/definitions/specificationExtension"}},"additionalProperties":false,"examples":[{"description":"Find more info here","url":"https://example.com"}]},"channelMessages":{"description":"A map of the messages that will be sent to this channel by any application at any time. **Every message sent to this channel MUST be valid against one, and only one, of the message objects defined in this map.**","type":"object","additionalProperties":{"oneOf":[{"$ref":"#/definitions/Reference"},{"$ref":"#/definitions/messageObject"}]}},"messageObject":{"description":"Describes a message received on a given channel and operation.","type":"object","properties":{"title":{"description":"A human-friendly title for the message.","type":"string"},"description":{"description":"A longer description of the message. CommonMark is allowed.","type":"string"},"examples":{"description":"List of examples.","type":"array","items":{"$ref":"#/definitions/messageExampleObject"}},"deprecated":{"default":false,"type":"boolean"},"bindings":{"oneOf":[{"$ref":"#/definitions/Reference"},{"$ref":"#/definitions/messageBindingsObject"}]},"contentType":{"description":"The content type to use when encoding/decoding a message\'s payload. The value MUST be a specific media type (e.g. application/json). When omitted, the value MUST be the one specified on the defaultContentType field.","type":"string"},"correlationId":{"oneOf":[{"$ref":"#/definitions/Reference"},{"$ref":"#/definitions/correlationId"}]},"externalDocs":{"oneOf":[{"$ref":"#/definitions/Reference"},{"$ref":"#/definitions/externalDocs"}]},"headers":{"$ref":"#/definitions/anySchema"},"name":{"description":"Name of the message.","type":"string"},"payload":{"$ref":"#/definitions/anySchema"},"summary":{"description":"A brief summary of the message.","type":"string"},"tags":{"type":"array","uniqueItems":true,"items":{"oneOf":[{"$ref":"#/definitions/Reference"},{"$ref":"#/definitions/tag"}]}},"traits":{"description":"A list of traits to apply to the message object. Traits MUST be merged using traits merge mechanism. The resulting object MUST be a valid Message Object.","type":"array","items":{"oneOf":[{"$ref":"#/definitions/Reference"},{"$ref":"#/definitions/messageTrait"},{"type":"array","items":[{"oneOf":[{"$ref":"#/definitions/Reference"},{"$ref":"#/definitions/messageTrait"}]},{"type":"object","additionalItems":true}]}]}}},"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"#/definitions/specificationExtension"}},"additionalProperties":false,"examples":[{"messageId":"userSignup","name":"UserSignup","title":"User signup","summary":"Action to sign a user up.","description":"A longer description","contentType":"application/json","tags":[{"name":"user"},{"name":"signup"},{"name":"register"}],"headers":{"type":"object","properties":{"correlationId":{"description":"Correlation ID set by application","type":"string"},"applicationInstanceId":{"description":"Unique identifier for a given instance of the publishing application","type":"string"}}},"payload":{"type":"object","properties":{"user":{"$ref":"#/components/schemas/userCreate"},"signup":{"$ref":"#/components/schemas/signup"}}},"correlationId":{"description":"Default Correlation ID","location":"$message.header#/correlationId"},"traits":[{"$ref":"#/components/messageTraits/commonHeaders"}],"examples":[{"name":"SimpleSignup","summary":"A simple UserSignup example message","headers":{"correlationId":"my-correlation-id","applicationInstanceId":"myInstanceId"},"payload":{"user":{"someUserKey":"someUserValue"},"signup":{"someSignupKey":"someSignupValue"}}}]}]},"messageExampleObject":{"type":"object","anyOf":[{"required":["payload"]},{"required":["headers"]}],"properties":{"headers":{"description":"Example of the application headers. It can be of any type.","type":"object"},"name":{"description":"Machine readable name of the message example.","type":"string"},"payload":{"description":"Example of the message payload. It can be of any type."},"summary":{"description":"A brief summary of the message example.","type":"string"}},"additionalProperties":false},"messageBindingsObject":{"description":"Map describing protocol-specific definitions for a message.","type":"object","properties":{"amqp":{"allOf":[{"description":"If no bindingVersion specified, use the latest binding","if":{"not":{"required":["bindingVersion"]}},"then":{"$ref":"#/definitions/bindings-amqp-0.3.0-message"}},{"if":{"required":["bindingVersion"],"properties":{"bindingVersion":{"const":"0.3.0"}}},"then":{"$ref":"#/definitions/bindings-amqp-0.3.0-message"}}],"properties":{"bindingVersion":{"enum":["0.3.0"]}}},"amqp1":{},"anypointmq":{"allOf":[{"description":"If no bindingVersion specified, use the latest binding","if":{"not":{"required":["bindingVersion"]}},"then":{"$ref":"#/definitions/bindings-anypointmq-0.0.1-message"}},{"if":{"required":["bindingVersion"],"properties":{"bindingVersion":{"const":"0.0.1"}}},"then":{"$ref":"#/definitions/bindings-anypointmq-0.0.1-message"}}],"properties":{"bindingVersion":{"enum":["0.0.1"]}}},"googlepubsub":{"allOf":[{"description":"If no bindingVersion specified, use the latest binding","if":{"not":{"required":["bindingVersion"]}},"then":{"$ref":"#/definitions/bindings-googlepubsub-0.2.0-message"}},{"if":{"required":["bindingVersion"],"properties":{"bindingVersion":{"const":"0.2.0"}}},"then":{"$ref":"#/definitions/bindings-googlepubsub-0.2.0-message"}}],"properties":{"bindingVersion":{"enum":["0.2.0"]}}},"http":{"allOf":[{"description":"If no bindingVersion specified, use the latest binding","if":{"not":{"required":["bindingVersion"]}},"then":{"$ref":"#/definitions/bindings-http-0.3.0-message"}},{"if":{"required":["bindingVersion"],"properties":{"bindingVersion":{"const":"0.2.0"}}},"then":{"$ref":"#/definitions/bindings-http-0.2.0-message"}},{"if":{"required":["bindingVersion"],"properties":{"bindingVersion":{"const":"0.3.0"}}},"then":{"$ref":"#/definitions/bindings-http-0.3.0-message"}}],"properties":{"bindingVersion":{"enum":["0.2.0","0.3.0"]}}},"ibmmq":{"allOf":[{"description":"If no bindingVersion specified, use the latest binding","if":{"not":{"required":["bindingVersion"]}},"then":{"$ref":"#/definitions/bindings-ibmmq-0.1.0-message"}},{"if":{"required":["bindingVersion"],"properties":{"bindingVersion":{"const":"0.1.0"}}},"then":{"$ref":"#/definitions/bindings-ibmmq-0.1.0-message"}}],"properties":{"bindingVersion":{"enum":["0.1.0"]}}},"jms":{"allOf":[{"description":"If no bindingVersion specified, use the latest binding","if":{"not":{"required":["bindingVersion"]}},"then":{"$ref":"#/definitions/bindings-jms-0.0.1-message"}},{"if":{"required":["bindingVersion"],"properties":{"bindingVersion":{"const":"0.0.1"}}},"then":{"$ref":"#/definitions/bindings-jms-0.0.1-message"}}],"properties":{"bindingVersion":{"enum":["0.0.1"]}}},"kafka":{"allOf":[{"description":"If no bindingVersion specified, use the latest binding","if":{"not":{"required":["bindingVersion"]}},"then":{"$ref":"#/definitions/bindings-kafka-0.5.0-message"}},{"if":{"required":["bindingVersion"],"properties":{"bindingVersion":{"const":"0.5.0"}}},"then":{"$ref":"#/definitions/bindings-kafka-0.5.0-message"}},{"if":{"required":["bindingVersion"],"properties":{"bindingVersion":{"const":"0.4.0"}}},"then":{"$ref":"#/definitions/bindings-kafka-0.4.0-message"}},{"if":{"required":["bindingVersion"],"properties":{"bindingVersion":{"const":"0.3.0"}}},"then":{"$ref":"#/definitions/bindings-kafka-0.3.0-message"}}],"properties":{"bindingVersion":{"enum":["0.5.0","0.4.0","0.3.0"]}}},"mqtt":{"allOf":[{"description":"If no bindingVersion specified, use the latest binding","if":{"not":{"required":["bindingVersion"]}},"then":{"$ref":"#/definitions/bindings-mqtt-0.2.0-message"}},{"if":{"required":["bindingVersion"],"properties":{"bindingVersion":{"const":"0.