All Downloads are FREE. Search and download functionalities are using the official Maven repository.

specs.asyncapi.asyncapi-3.0.yaml Maven / Gradle / Ivy

name: AsyncAPI 3.0
version: 3.0
versions:
  - version: 3.0.0
    url: https://www.asyncapi.com/docs/reference/specification/v3.0.0
prefix: AsyncApi30
namespace: io.apicurio.datamodels.models.asyncapi.v30

traits:
  - name: Extensible
    properties:
      - name: '/^x-.+$/'
        type: any
        collection: extensions
  - name: Referenceable
    properties:
      - name: '$ref'
        type: string

entities:
  - name: Document
    root: true
    traits:
      - Extensible
    properties:
      - name: asyncapi
        type: string
      - name: id
        type: string
      - name: info
        type: Info
      - name: servers
        type: Servers
      - name: defaultContentType
        type: string
      - name: channels
        type: Channels
      - name: operations
        type: Operations
      - name: components
        type: Components
    propertyOrder:
      - $this
      - $Extensible

  - name: Info
    traits:
      - Extensible
    properties:
      - name: title
        type: string
      - name: version
        type: string
      - name: description
        type: string
      - name: termsOfService
        type: string
      - name: contact
        type: Contact
      - name: license
        type: License
      - name: tags
        type: '[Tag]'
      - name: externalDocs
        type: ExternalDocumentation
    propertyOrder:
      - $this
      - $Extensible

  - name: Contact
    traits:
      - Extensible
    properties:
      - name: name
        type: string
      - name: url
        type: string
      - name: email
        type: string
    propertyOrder:
      - $this
      - $Extensible

  - name: License
    traits:
      - Extensible
    properties:
      - name: name
        type: string
      - name: url
        type: string
    propertyOrder:
      - $this
      - $Extensible

  - name: Servers
    properties:
      - name: '*'
        type: Server
    propertyOrder:
      - $this

  - name: Server
    traits:
      - Extensible
      - Referenceable
    properties:
      - name: host
        type: string
      - name: protocol
        type: string
      - name: protocolVersion
        type: string
      - name: pathname
        type: string
      - name: description
        type: string
      - name: title
        type: string
      - name: summary
        type: string
      - name: variables
        type: '{ServerVariable}'
      - name: security
        type: '[SecurityScheme]'
      - name: tags
        type: '[Tag]'
      - name: externalDocs
        type: ExternalDocumentation
      - name: bindings
        type: ServerBindings
    propertyOrder:
      - $Referenceable
      - $this
      - $Extensible

  - name: ServerVariable
    traits:
      - Extensible
      - Referenceable
    properties:
      - name: enum
        type: '[string]'
      - name: default
        type: string
      - name: description
        type: string
      - name: examples
        type: '[string]'
    propertyOrder:
      - $Referenceable
      - $this
      - $Extensible

  - name: Channels
    properties:
      - name: '*'
        type: Channel
    propertyOrder:
      - $this

  - name: Channel
    traits:
      - Extensible
      - Referenceable
    properties:
      - name: address
        type: string
      - name: messages
        type: '{Message}'
      - name: title
        type: string
      - name: summary
        type: string
      - name: description
        type: string
      - name: servers
        type: '[Reference]'
      - name: parameters
        type: Parameters
      - name: tags
        type: '[Tag]'
      - name: externalDocs
        type: ExternalDocumentation
      - name: bindings
        type: ChannelBindings
    propertyOrder:
      - $Referenceable
      - $this
      - $Extensible

  - name: Operations
    properties:
      - name: '*'
        type: Operation
    propertyOrder:
      - $this

  - name: Operation
    traits:
      - Extensible
      - Referenceable
    properties:
      - name: action
        type: string
      - name: channel
        type: Reference
      - name: title
        type: string
      - name: summary
        type: string
      - name: description
        type: string
      - name: security
        type: '[SecurityScheme]'
      - name: tags
        type: '[Tag]'
      - name: externalDocs
        type: ExternalDocumentation
      - name: bindings
        type: OperationBindings
      - name: traits
        type: '[OperationTrait]'
      - name: messages
        type: '[Reference]'
      - name: reply
        type: OperationReply
    propertyOrder:
      - $Referenceable
      - $this
      - $Extensible

  - name: OperationTrait
    traits:
      - Extensible
      - Referenceable
    properties:
      - name: title
        type: string
      - name: summary
        type: string
      - name: description
        type: string
      - name: security
        type: '[SecurityScheme]'
      - name: tags
        type: '[Tag]'
      - name: externalDocs
        type: ExternalDocumentation
      - name: bindings
        type: OperationBindings
    propertyOrder:
      - $Referenceable
      - $this
      - $Extensible

  - name: OperationReply
    traits:
      - Extensible
      - Referenceable
    properties:
      - name: address
        type: OperationReplyAddress
      - name: channel
        type: Reference
      - name: messages
        type: '[Reference]'
    propertyOrder:
      - $Referenceable
      - $this
      - $Extensible

  - name: OperationReplyAddress
    traits:
      - Extensible
      - Referenceable
    properties:
      - name: description
        type: string
      - name: location
        type: string
    propertyOrder:
      - $Referenceable
      - $this
      - $Extensible

  - name: Parameters
    properties:
      - name: '*'
        type: Parameter
        collection: items
    propertyOrder:
      - $this

  - name: Parameter
    traits:
      - Extensible
      - Referenceable
    properties:
      - name: enum
        type: '[string]'
      - name: default
        type: string
      - name: description
        type: string
      - name: examples
        type: '[string]'
      - name: location
        type: string
    propertyOrder:
      - $Referenceable
      - $this
      - $Extensible

  - name: ServerBindings
    traits:
      - Extensible
      - Referenceable
    properties:
      - name: http
        type: Binding
      - name: ws
        type: Binding
      - name: kafka
        type: Binding
      - name: anypointmq
        type: Binding
      - name: amqp
        type: Binding
      - name: amqp1
        type: Binding
      - name: mqtt
        type: Binding
      - name: mqtt5
        type: Binding
      - name: nats
        type: Binding
      - name: jms
        type: Binding
      - name: sns
        type: Binding
      - name: solace
        type: Binding
      - name: sqs
        type: Binding
      - name: stomp
        type: Binding
      - name: redis
        type: Binding
      - name: mercure
        type: Binding
      - name: ibmmq
        type: Binding
      - name: googlepubsub
        type: Binding
      - name: pulsar
        type: Binding
    propertyOrder:
      - $Referenceable
      - $this
      - $Extensible

  - name: ChannelBindings
    traits:
      - Extensible
      - Referenceable
    properties:
      - name: http
        type: Binding
      - name: ws
        type: Binding
      - name: kafka
        type: Binding
      - name: anypointmq
        type: Binding
      - name: amqp
        type: Binding
      - name: amqp1
        type: Binding
      - name: mqtt
        type: Binding
      - name: mqtt5
        type: Binding
      - name: nats
        type: Binding
      - name: jms
        type: Binding
      - name: sns
        type: Binding
      - name: solace
        type: Binding
      - name: sqs
        type: Binding
      - name: stomp
        type: Binding
      - name: redis
        type: Binding
      - name: mercure
        type: Binding
      - name: ibmmq
        type: Binding
      - name: googlepubsub
        type: Binding
      - name: pulsar
        type: Binding
    propertyOrder:
      - $Referenceable
      - $this
      - $Extensible

  - name: OperationBindings
    traits:
      - Extensible
      - Referenceable
    properties:
      - name: http
        type: Binding
      - name: ws
        type: Binding
      - name: kafka
        type: Binding
      - name: anypointmq
        type: Binding
      - name: amqp
        type: Binding
      - name: amqp1
        type: Binding
      - name: mqtt
        type: Binding
      - name: mqtt5
        type: Binding
      - name: nats
        type: Binding
      - name: jms
        type: Binding
      - name: sns
        type: Binding
      - name: solace
        type: Binding
      - name: sqs
        type: Binding
      - name: stomp
        type: Binding
      - name: redis
        type: Binding
      - name: mercure
        type: Binding
      - name: ibmmq
        type: Binding
      - name: googlepubsub
        type: Binding
      - name: pulsar
        type: Binding
    propertyOrder:
      - $Referenceable
      - $this
      - $Extensible

  - name: MessageBindings
    traits:
      - Extensible
      - Referenceable
    properties:
      - name: http
        type: Binding
      - name: ws
        type: Binding
      - name: kafka
        type: Binding
      - name: anypointmq
        type: Binding
      - name: amqp
        type: Binding
      - name: amqp1
        type: Binding
      - name: mqtt
        type: Binding
      - name: mqtt5
        type: Binding
      - name: nats
        type: Binding
      - name: jms
        type: Binding
      - name: sns
        type: Binding
      - name: solace
        type: Binding
      - name: sqs
        type: Binding
      - name: stomp
        type: Binding
      - name: redis
        type: Binding
      - name: mercure
        type: Binding
      - name: ibmmq
        type: Binding
      - name: googlepubsub
        type: Binding
      - name: pulsar
        type: Binding
    propertyOrder:
      - $Referenceable
      - $this
      - $Extensible

  - name: Message
    traits:
      - Extensible
      - Referenceable
    properties:
      - name: headers
        type: 'MultiFormatSchema|Schema'
        unionRules:
          - unionType: 'MultiFormatSchema'
            ruleType: propertyExists
            propertyName: schemaFormat
      - name: payload
        type: 'MultiFormatSchema|Schema'
        unionRules:
          - unionType: 'MultiFormatSchema'
            ruleType: propertyExists
            propertyName: schemaFormat
      - name: correlationId
        type: CorrelationID
      - name: contentType
        type: string
      - name: name
        type: string
      - name: title
        type: string
      - name: summary
        type: string
      - name: description
        type: string
      - name: tags
        type: '[Tag]'
      - name: externalDocs
        type: ExternalDocumentation
      - name: bindings
        type: MessageBindings
      - name: examples
        type: '[MessageExample]'
      - name: traits
        type: '[MessageTrait]'
    propertyOrder:
      - $Referenceable
      - $this
      - $Extensible

  - name: MessageTrait
    traits:
      - Extensible
      - Referenceable
    properties:
      - name: headers
        type: 'MultiFormatSchema|Schema'
        unionRules:
          - unionType: 'MultiFormatSchema'
            ruleType: propertyExists
            propertyName: schemaFormat
      - name: correlationId
        type: CorrelationID
      - name: contentType
        type: string
      - name: name
        type: string
      - name: title
        type: string
      - name: summary
        type: string
      - name: description
        type: string
      - name: tags
        type: '[Tag]'
      - name: externalDocs
        type: ExternalDocumentation
      - name: bindings
        type: MessageBindings
      - name: examples
        type: '[MessageExample]'
    propertyOrder:
      - $Referenceable
      - $this
      - $Extensible

  - name: MessageExample
    traits:
      - Extensible
    properties:
      - name: headers
        type: '{any}'
      - name: payload
        type: '{any}'
      - name: name
        type: string
      - name: summary
        type: string
    propertyOrder:
      - $this
      - $Extensible

  - name: Tag
    traits:
      - Extensible
      - Referenceable
    properties:
      - name: name
        type: string
      - name: description
        type: string
      - name: externalDocs
        type: ExternalDocumentation
    propertyOrder:
      - $Referenceable
      - $this
      - $Extensible

  - name: ExternalDocumentation
    traits:
      - Extensible
      - Referenceable
    properties:
      - name: description
        type: string
      - name: url
        type: string
    propertyOrder:
      - $Referenceable
      - $this
      - $Extensible

  - name: Reference
    traits:
      - Referenceable
    properties:
      - name: '$ref'
        type: string
    propertyOrder:
      - $Referenceable

  - name: Components
    traits:
      - Extensible
    properties:
      - name: schemas
        type: '{Schema}'
      - name: servers
        type: '{Server}'
      - name: channels
        type: '{Channel}'
      - name: operations
        type: '{Operation}'
      - name: messages
        type: '{Message}'
      - name: securitySchemes
        type: '{SecurityScheme}'
      - name: serverVariables
        type: '{ServerVariable}'
      - name: parameters
        type: '{Parameter}'
      - name: correlationIds
        type: '{CorrelationID}'
      - name: replies
        type: '{OperationReply}'
      - name: replyAddresses
        type: '{OperationReplyAddress}'
      - name: externalDocs
        type: '{ExternalDocumentation}'
      - name: tags
        type: '{Tag}'
      - name: operationTraits
        type: '{OperationTrait}'
      - name: messageTraits
        type: '{MessageTrait}'
      - name: serverBindings
        type: '{ServerBindings}'
      - name: channelBindings
        type: '{ChannelBindings}'
      - name: operationBindings
        type: '{OperationBindings}'
      - name: messageBindings
        type: '{MessageBindings}'
    propertyOrder:
      - $this
      - $Extensible

  - name: MultiFormatSchema
    traits:
      - Extensible
      - Referenceable
    properties:
      - name: schemaFormat
        type: string
      - name: schema
        type: 'Schema|any'
    propertyOrder:
      - $Referenceable
      - $this
      - $Extensible

  - name: Schema
    traits:
      - Extensible
      - Referenceable
    properties:
      - name: title
        type: string
      - name: type
        type: string
      - name: required
        type: '[string]'
      - name: multipleOf
        type: number
      - name: maximum
        type: number
      - name: exclusiveMaximum
        type: number
      - name: minimum
        type: number
      - name: exclusiveMinimum
        type: number
      - name: maxLength
        type: integer
      - name: minLength
        type: integer
      - name: pattern
        type: string
      - name: maxItems
        type: integer
      - name: minItems
        type: integer
      - name: uniqueItems
        type: boolean
      - name: maxProperties
        type: integer
      - name: minProperties
        type: integer
      - name: enum
        type: '[any]'
      - name: const
        type: any
      - name: examples
        type: '[any]'
      - name: if
        type: Schema
      - name: then
        type: Schema
      - name: else
        type: Schema
      - name: readOnly
        type: boolean
      - name: writeOnly
        type: boolean
      - name: properties
        type: '{Schema}'
      - name: patternProperties
        type: '{string}'
      - name: additionalProperties
        type: 'boolean|Schema'
      - name: additionalItems
        type: Schema
      - name: items
        type: 'Schema|[Schema]'
      - name: propertyNames
        type: Schema
      - name: contains
        type: Schema
      - name: allOf
        type: '[Schema]'
      - name: oneOf
        type: '[Schema]'
      - name: anyOf
        type: '[Schema]'
      - name: not
        type: Schema
      - name: description
        type: string
      - name: format
        type: string
      - name: default
        type: any
      - name: discriminator
        type: string
      - name: externalDocs
        type: ExternalDocumentation
      - name: deprecated
        type: boolean
    propertyOrder:
      - $Referenceable
      - $this
      - $Extensible

  - name: SecurityScheme
    traits:
      - Extensible
      - Referenceable
    properties:
      - name: type
        type: string
      - name: description
        type: string
      - name: name
        type: string
      - name: in
        type: string
      - name: scheme
        type: string
      - name: bearerFormat
        type: string
      - name: flows
        type: OAuthFlows
      - name: openIdConnectUrl
        type: string
      - name: scopes
        type: '[string]'
    propertyOrder:
      - $Referenceable
      - $this
      - $Extensible

  - name: OAuthFlows
    traits:
      - Extensible
    properties:
      - name: implicit
        type: OAuthFlow
      - name: password
        type: OAuthFlow
      - name: clientCredentials
        type: OAuthFlow
      - name: authorizationCode
        type: OAuthFlow
    propertyOrder:
      - $this
      - $Extensible

  - name: OAuthFlow
    traits:
      - Extensible
    properties:
      - name: authorizationUrl
        type: string
      - name: tokenUrl
        type: string
      - name: refreshUrl
        type: string
      - name: availableScopes
        type: '{string}'
    propertyOrder:
      - $this
      - $Extensible

  - name: CorrelationID
    traits:
      - Extensible
      - Referenceable
    properties:
      - name: description
        type: string
      - name: location
        type: string
    propertyOrder:
      - $Referenceable
      - $this
      - $Extensible

  - name: Binding
    traits:
      - Extensible
    properties:
      - name: '*'
        type: any
    propertyOrder:
      - $this
      - $Extensible




© 2015 - 2025 Weber Informatics LLC | Privacy Policy