@asyncapi/specs
Version:
AsyncAPI schema versions
1,209 lines (1,208 loc) • 97.5 kB
JSON
{
"$id": "http://asyncapi.com/definitions/2.4.0/asyncapi.json",
"$schema": "http://json-schema.org/draft-07/schema",
"title": "AsyncAPI 2.4.0 schema.",
"type": "object",
"required": [
"asyncapi",
"info",
"channels"
],
"additionalProperties": false,
"patternProperties": {
"^x-[\\w\\d\\.\\x2d_]+$": {
"$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json"
}
},
"properties": {
"asyncapi": {
"type": "string",
"enum": [
"2.4.0"
],
"description": "The AsyncAPI specification version of this document."
},
"id": {
"type": "string",
"description": "A unique id representing the application.",
"format": "uri"
},
"info": {
"$ref": "http://asyncapi.com/definitions/2.4.0/info.json"
},
"servers": {
"$ref": "http://asyncapi.com/definitions/2.4.0/servers.json"
},
"defaultContentType": {
"type": "string"
},
"channels": {
"$ref": "http://asyncapi.com/definitions/2.4.0/channels.json"
},
"components": {
"$ref": "http://asyncapi.com/definitions/2.4.0/components.json"
},
"tags": {
"type": "array",
"items": {
"$ref": "http://asyncapi.com/definitions/2.4.0/tag.json"
},
"uniqueItems": true
},
"externalDocs": {
"$ref": "http://asyncapi.com/definitions/2.4.0/externalDocs.json"
}
},
"definitions": {
"http://asyncapi.com/definitions/2.4.0/specificationExtension.json": {
"$id": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json",
"description": "Any property starting with x- is valid.",
"additionalProperties": true,
"additionalItems": true
},
"http://asyncapi.com/definitions/2.4.0/info.json": {
"$id": "http://asyncapi.com/definitions/2.4.0/info.json",
"type": "object",
"description": "General information about the API.",
"required": [
"version",
"title"
],
"additionalProperties": false,
"patternProperties": {
"^x-[\\w\\d\\.\\x2d_]+$": {
"$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json"
}
},
"properties": {
"title": {
"type": "string",
"description": "A unique and precise title of the API."
},
"version": {
"type": "string",
"description": "A semantic version number of the API."
},
"description": {
"type": "string",
"description": "A longer description of the API. Should be different from the title. CommonMark is allowed."
},
"termsOfService": {
"type": "string",
"description": "A URL to the Terms of Service for the API. MUST be in the format of a URL.",
"format": "uri"
},
"contact": {
"$ref": "http://asyncapi.com/definitions/2.4.0/contact.json"
},
"license": {
"$ref": "http://asyncapi.com/definitions/2.4.0/license.json"
}
}
},
"http://asyncapi.com/definitions/2.4.0/contact.json": {
"$id": "http://asyncapi.com/definitions/2.4.0/contact.json",
"type": "object",
"description": "Contact information for the owners of the API.",
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "The identifying name of the contact person/organization."
},
"url": {
"type": "string",
"description": "The URL pointing to the contact information.",
"format": "uri"
},
"email": {
"type": "string",
"description": "The email address of the contact person/organization.",
"format": "email"
}
},
"patternProperties": {
"^x-[\\w\\d\\.\\x2d_]+$": {
"$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json"
}
}
},
"http://asyncapi.com/definitions/2.4.0/license.json": {
"$id": "http://asyncapi.com/definitions/2.4.0/license.json",
"type": "object",
"required": [
"name"
],
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "The name of the license type. It's encouraged to use an OSI compatible license."
},
"url": {
"type": "string",
"description": "The URL pointing to the license.",
"format": "uri"
}
},
"patternProperties": {
"^x-[\\w\\d\\.\\x2d_]+$": {
"$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json"
}
}
},
"http://asyncapi.com/definitions/2.4.0/servers.json": {
"$id": "http://asyncapi.com/definitions/2.4.0/servers.json",
"description": "An object representing multiple servers.",
"type": "object",
"additionalProperties": {
"oneOf": [
{
"$ref": "http://asyncapi.com/definitions/2.4.0/Reference.json"
},
{
"$ref": "http://asyncapi.com/definitions/2.4.0/server.json"
}
]
}
},
"http://asyncapi.com/definitions/2.4.0/Reference.json": {
"$id": "http://asyncapi.com/definitions/2.4.0/Reference.json",
"type": "object",
"required": [
"$ref"
],
"properties": {
"$ref": {
"$ref": "http://asyncapi.com/definitions/2.4.0/ReferenceObject.json"
}
}
},
"http://asyncapi.com/definitions/2.4.0/ReferenceObject.json": {
"$id": "http://asyncapi.com/definitions/2.4.0/ReferenceObject.json",
"type": "string",
"format": "uri-reference"
},
"http://asyncapi.com/definitions/2.4.0/server.json": {
"$id": "http://asyncapi.com/definitions/2.4.0/server.json",
"type": "object",
"description": "An object representing a Server.",
"required": [
"url",
"protocol"
],
"additionalProperties": false,
"patternProperties": {
"^x-[\\w\\d\\.\\x2d_]+$": {
"$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json"
}
},
"properties": {
"url": {
"type": "string"
},
"description": {
"type": "string"
},
"protocol": {
"type": "string",
"description": "The transfer protocol."
},
"protocolVersion": {
"type": "string"
},
"variables": {
"$ref": "http://asyncapi.com/definitions/2.4.0/serverVariables.json"
},
"security": {
"type": "array",
"items": {
"$ref": "http://asyncapi.com/definitions/2.4.0/SecurityRequirement.json"
}
},
"bindings": {
"$ref": "http://asyncapi.com/definitions/2.4.0/bindingsObject.json"
}
}
},
"http://asyncapi.com/definitions/2.4.0/serverVariables.json": {
"$id": "http://asyncapi.com/definitions/2.4.0/serverVariables.json",
"type": "object",
"additionalProperties": {
"$ref": "http://asyncapi.com/definitions/2.4.0/serverVariable.json"
}
},
"http://asyncapi.com/definitions/2.4.0/serverVariable.json": {
"$id": "http://asyncapi.com/definitions/2.4.0/serverVariable.json",
"type": "object",
"description": "An object representing a Server Variable for server URL template substitution.",
"additionalProperties": false,
"patternProperties": {
"^x-[\\w\\d\\.\\x2d_]+$": {
"$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json"
}
},
"properties": {
"enum": {
"type": "array",
"items": {
"type": "string"
},
"uniqueItems": true
},
"default": {
"type": "string"
},
"description": {
"type": "string"
},
"examples": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"http://asyncapi.com/definitions/2.4.0/SecurityRequirement.json": {
"$id": "http://asyncapi.com/definitions/2.4.0/SecurityRequirement.json",
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
},
"uniqueItems": true
}
},
"http://asyncapi.com/definitions/2.4.0/bindingsObject.json": {
"$id": "http://asyncapi.com/definitions/2.4.0/bindingsObject.json",
"type": "object",
"additionalProperties": true,
"properties": {
"http": {},
"ws": {},
"amqp": {},
"amqp1": {},
"mqtt": {},
"mqtt5": {},
"kafka": {},
"anypointmq": {},
"nats": {},
"jms": {},
"sns": {},
"sqs": {},
"stomp": {},
"redis": {},
"ibmmq": {},
"solace": {}
}
},
"http://asyncapi.com/definitions/2.4.0/channels.json": {
"$id": "http://asyncapi.com/definitions/2.4.0/channels.json",
"type": "object",
"propertyNames": {
"type": "string",
"format": "uri-template",
"minLength": 1
},
"additionalProperties": {
"$ref": "http://asyncapi.com/definitions/2.4.0/channelItem.json"
}
},
"http://asyncapi.com/definitions/2.4.0/channelItem.json": {
"$id": "http://asyncapi.com/definitions/2.4.0/channelItem.json",
"type": "object",
"additionalProperties": false,
"patternProperties": {
"^x-[\\w\\d\\.\\x2d_]+$": {
"$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json"
}
},
"properties": {
"$ref": {
"$ref": "http://asyncapi.com/definitions/2.4.0/ReferenceObject.json"
},
"parameters": {
"$ref": "http://asyncapi.com/definitions/2.4.0/parameters.json"
},
"description": {
"type": "string",
"description": "A description of the channel."
},
"servers": {
"type": "array",
"description": "The names of the servers on which this channel is available. If absent or empty then this channel must be available on all servers.",
"items": {
"type": "string"
},
"uniqueItems": true
},
"publish": {
"$ref": "http://asyncapi.com/definitions/2.4.0/operation.json"
},
"subscribe": {
"$ref": "http://asyncapi.com/definitions/2.4.0/operation.json"
},
"deprecated": {
"type": "boolean",
"default": false
},
"bindings": {
"$ref": "http://asyncapi.com/definitions/2.4.0/bindingsObject.json"
}
}
},
"http://asyncapi.com/definitions/2.4.0/parameters.json": {
"$id": "http://asyncapi.com/definitions/2.4.0/parameters.json",
"type": "object",
"additionalProperties": {
"oneOf": [
{
"$ref": "http://asyncapi.com/definitions/2.4.0/Reference.json"
},
{
"$ref": "http://asyncapi.com/definitions/2.4.0/parameter.json"
}
]
},
"description": "JSON objects describing re-usable channel parameters."
},
"http://asyncapi.com/definitions/2.4.0/parameter.json": {
"$id": "http://asyncapi.com/definitions/2.4.0/parameter.json",
"additionalProperties": false,
"patternProperties": {
"^x-[\\w\\d\\.\\x2d_]+$": {
"$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json"
}
},
"properties": {
"description": {
"type": "string",
"description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed."
},
"schema": {
"$ref": "http://asyncapi.com/definitions/2.4.0/schema.json"
},
"location": {
"type": "string",
"description": "A runtime expression that specifies the location of the parameter value",
"pattern": "^\\$message\\.(header|payload)#(\\/(([^\\/~])|(~[01]))*)*"
},
"$ref": {
"$ref": "http://asyncapi.com/definitions/2.4.0/ReferenceObject.json"
}
}
},
"http://asyncapi.com/definitions/2.4.0/schema.json": {
"$id": "http://asyncapi.com/definitions/2.4.0/schema.json",
"allOf": [
{
"$ref": "http://json-schema.org/draft-07/schema#"
},
{
"patternProperties": {
"^x-[\\w\\d\\.\\x2d_]+$": {
"$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json"
}
},
"properties": {
"additionalProperties": {
"anyOf": [
{
"$ref": "http://asyncapi.com/definitions/2.4.0/schema.json"
},
{
"type": "boolean"
}
],
"default": {}
},
"items": {
"anyOf": [
{
"$ref": "http://asyncapi.com/definitions/2.4.0/schema.json"
},
{
"type": "array",
"minItems": 1,
"items": {
"$ref": "http://asyncapi.com/definitions/2.4.0/schema.json"
}
}
],
"default": {}
},
"allOf": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "http://asyncapi.com/definitions/2.4.0/schema.json"
}
},
"oneOf": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "http://asyncapi.com/definitions/2.4.0/schema.json"
}
},
"anyOf": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "http://asyncapi.com/definitions/2.4.0/schema.json"
}
},
"not": {
"$ref": "http://asyncapi.com/definitions/2.4.0/schema.json"
},
"properties": {
"type": "object",
"additionalProperties": {
"$ref": "http://asyncapi.com/definitions/2.4.0/schema.json"
},
"default": {}
},
"patternProperties": {
"type": "object",
"additionalProperties": {
"$ref": "http://asyncapi.com/definitions/2.4.0/schema.json"
},
"default": {}
},
"propertyNames": {
"$ref": "http://asyncapi.com/definitions/2.4.0/schema.json"
},
"contains": {
"$ref": "http://asyncapi.com/definitions/2.4.0/schema.json"
},
"discriminator": {
"type": "string"
},
"externalDocs": {
"$ref": "http://asyncapi.com/definitions/2.4.0/externalDocs.json"
},
"deprecated": {
"type": "boolean",
"default": false
}
}
}
]
},
"http://json-schema.org/draft-07/schema": {
"$id": "http://json-schema.org/draft-07/schema",
"title": "Core schema meta-schema",
"definitions": {
"schemaArray": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#"
}
},
"nonNegativeInteger": {
"type": "integer",
"minimum": 0
},
"nonNegativeIntegerDefault0": {
"allOf": [
{
"$ref": "#/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/nonNegativeInteger"
},
"minLength": {
"$ref": "#/definitions/nonNegativeIntegerDefault0"
},
"pattern": {
"type": "string",
"format": "regex"
},
"additionalItems": {
"$ref": "#"
},
"items": {
"anyOf": [
{
"$ref": "#"
},
{
"$ref": "#/definitions/schemaArray"
}
],
"default": true
},
"maxItems": {
"$ref": "#/definitions/nonNegativeInteger"
},
"minItems": {
"$ref": "#/definitions/nonNegativeIntegerDefault0"
},
"uniqueItems": {
"type": "boolean",
"default": false
},
"contains": {
"$ref": "#"
},
"maxProperties": {
"$ref": "#/definitions/nonNegativeInteger"
},
"minProperties": {
"$ref": "#/definitions/nonNegativeIntegerDefault0"
},
"required": {
"$ref": "#/definitions/stringArray"
},
"additionalProperties": {
"$ref": "#"
},
"definitions": {
"type": "object",
"additionalProperties": {
"$ref": "#"
},
"default": {}
},
"properties": {
"type": "object",
"additionalProperties": {
"$ref": "#"
},
"default": {}
},
"patternProperties": {
"type": "object",
"additionalProperties": {
"$ref": "#"
},
"propertyNames": {
"format": "regex"
},
"default": {}
},
"dependencies": {
"type": "object",
"additionalProperties": {
"anyOf": [
{
"$ref": "#"
},
{
"$ref": "#/definitions/stringArray"
}
]
}
},
"propertyNames": {
"$ref": "#"
},
"const": true,
"enum": {
"type": "array",
"items": true,
"minItems": 1,
"uniqueItems": true
},
"type": {
"anyOf": [
{
"$ref": "#/definitions/simpleTypes"
},
{
"type": "array",
"items": {
"$ref": "#/definitions/simpleTypes"
},
"minItems": 1,
"uniqueItems": true
}
]
},
"format": {
"type": "string"
},
"contentMediaType": {
"type": "string"
},
"contentEncoding": {
"type": "string"
},
"if": {
"$ref": "#"
},
"then": {
"$ref": "#"
},
"else": {
"$ref": "#"
},
"allOf": {
"$ref": "#/definitions/schemaArray"
},
"anyOf": {
"$ref": "#/definitions/schemaArray"
},
"oneOf": {
"$ref": "#/definitions/schemaArray"
},
"not": {
"$ref": "#"
}
},
"default": true
},
"http://asyncapi.com/definitions/2.4.0/externalDocs.json": {
"$id": "http://asyncapi.com/definitions/2.4.0/externalDocs.json",
"type": "object",
"additionalProperties": false,
"description": "information about external documentation",
"required": [
"url"
],
"properties": {
"description": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri"
}
},
"patternProperties": {
"^x-[\\w\\d\\.\\x2d_]+$": {
"$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json"
}
}
},
"http://asyncapi.com/definitions/2.4.0/operation.json": {
"$id": "http://asyncapi.com/definitions/2.4.0/operation.json",
"type": "object",
"additionalProperties": false,
"patternProperties": {
"^x-[\\w\\d\\.\\x2d_]+$": {
"$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json"
}
},
"properties": {
"traits": {
"type": "array",
"items": {
"oneOf": [
{
"$ref": "http://asyncapi.com/definitions/2.4.0/Reference.json"
},
{
"$ref": "http://asyncapi.com/definitions/2.4.0/operationTrait.json"
}
]
}
},
"summary": {
"type": "string"
},
"description": {
"type": "string"
},
"security": {
"type": "array",
"items": {
"$ref": "http://asyncapi.com/definitions/2.4.0/SecurityRequirement.json"
}
},
"tags": {
"type": "array",
"items": {
"$ref": "http://asyncapi.com/definitions/2.4.0/tag.json"
},
"uniqueItems": true
},
"externalDocs": {
"$ref": "http://asyncapi.com/definitions/2.4.0/externalDocs.json"
},
"operationId": {
"type": "string"
},
"bindings": {
"$ref": "http://asyncapi.com/definitions/2.4.0/bindingsObject.json"
},
"message": {
"$ref": "http://asyncapi.com/definitions/2.4.0/message.json"
}
}
},
"http://asyncapi.com/definitions/2.4.0/operationTrait.json": {
"$id": "http://asyncapi.com/definitions/2.4.0/operationTrait.json",
"type": "object",
"additionalProperties": false,
"patternProperties": {
"^x-[\\w\\d\\.\\x2d_]+$": {
"$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json"
}
},
"properties": {
"summary": {
"type": "string"
},
"description": {
"type": "string"
},
"tags": {
"type": "array",
"items": {
"$ref": "http://asyncapi.com/definitions/2.4.0/tag.json"
},
"uniqueItems": true
},
"externalDocs": {
"$ref": "http://asyncapi.com/definitions/2.4.0/externalDocs.json"
},
"operationId": {
"type": "string"
},
"security": {
"type": "array",
"items": {
"$ref": "http://asyncapi.com/definitions/2.4.0/SecurityRequirement.json"
}
},
"bindings": {
"$ref": "http://asyncapi.com/definitions/2.4.0/bindingsObject.json"
}
}
},
"http://asyncapi.com/definitions/2.4.0/tag.json": {
"$id": "http://asyncapi.com/definitions/2.4.0/tag.json",
"type": "object",
"additionalProperties": false,
"required": [
"name"
],
"properties": {
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"externalDocs": {
"$ref": "http://asyncapi.com/definitions/2.4.0/externalDocs.json"
}
},
"patternProperties": {
"^x-[\\w\\d\\.\\x2d_]+$": {
"$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json"
}
}
},
"http://asyncapi.com/definitions/2.4.0/message.json": {
"$id": "http://asyncapi.com/definitions/2.4.0/message.json",
"oneOf": [
{
"$ref": "http://asyncapi.com/definitions/2.4.0/Reference.json"
},
{
"oneOf": [
{
"type": "object",
"required": [
"oneOf"
],
"additionalProperties": false,
"properties": {
"oneOf": {
"type": "array",
"items": {
"$ref": "http://asyncapi.com/definitions/2.4.0/message.json"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"patternProperties": {
"^x-[\\w\\d\\.\\x2d_]+$": {
"$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json"
}
},
"properties": {
"schemaFormat": {
"type": "string"
},
"contentType": {
"type": "string"
},
"headers": {
"allOf": [
{
"$ref": "http://asyncapi.com/definitions/2.4.0/schema.json"
},
{
"properties": {
"type": {
"const": "object"
}
}
}
]
},
"messageId": {
"type": "string"
},
"payload": {},
"correlationId": {
"oneOf": [
{
"$ref": "http://asyncapi.com/definitions/2.4.0/Reference.json"
},
{
"$ref": "http://asyncapi.com/definitions/2.4.0/correlationId.json"
}
]
},
"tags": {
"type": "array",
"items": {
"$ref": "http://asyncapi.com/definitions/2.4.0/tag.json"
},
"uniqueItems": true
},
"summary": {
"type": "string",
"description": "A brief summary of the message."
},
"name": {
"type": "string",
"description": "Name of the message."
},
"title": {
"type": "string",
"description": "A human-friendly title for the message."
},
"description": {
"type": "string",
"description": "A longer description of the message. CommonMark is allowed."
},
"externalDocs": {
"$ref": "http://asyncapi.com/definitions/2.4.0/externalDocs.json"
},
"deprecated": {
"type": "boolean",
"default": false
},
"examples": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"anyOf": [
{
"required": [
"payload"
]
},
{
"required": [
"headers"
]
}
],
"properties": {
"name": {
"type": "string",
"description": "Machine readable name of the message example."
},
"summary": {
"type": "string",
"description": "A brief summary of the message example."
},
"headers": {
"type": "object"
},
"payload": {}
}
}
},
"bindings": {
"$ref": "http://asyncapi.com/definitions/2.4.0/bindingsObject.json"
},
"traits": {
"type": "array",
"items": {
"oneOf": [
{
"$ref": "http://asyncapi.com/definitions/2.4.0/Reference.json"
},
{
"$ref": "http://asyncapi.com/definitions/2.4.0/messageTrait.json"
}
]
}
}
},
"allOf": [
{
"if": {
"not": {
"required": [
"schemaFormat"
]
}
},
"then": {
"properties": {
"payload": {
"$ref": "http://asyncapi.com/definitions/2.4.0/schema.json"
}
}
}
},
{
"if": {
"required": [
"schemaFormat"
],
"properties": {
"schemaFormat": {
"enum": [
"application/vnd.aai.asyncapi;version=2.0.0",
"application/vnd.aai.asyncapi+json;version=2.0.0",
"application/vnd.aai.asyncapi+yaml;version=2.0.0",
"application/vnd.aai.asyncapi;version=2.1.0",
"application/vnd.aai.asyncapi+json;version=2.1.0",
"application/vnd.aai.asyncapi+yaml;version=2.1.0",
"application/vnd.aai.asyncapi;version=2.2.0",
"application/vnd.aai.asyncapi+json;version=2.2.0",
"application/vnd.aai.asyncapi+yaml;version=2.2.0",
"application/vnd.aai.asyncapi;version=2.3.0",
"application/vnd.aai.asyncapi+json;version=2.3.0",
"application/vnd.aai.asyncapi+yaml;version=2.3.0",
"application/vnd.aai.asyncapi;version=2.4.0",
"application/vnd.aai.asyncapi+json;version=2.4.0",
"application/vnd.aai.asyncapi+yaml;version=2.4.0"
]
}
}
},
"then": {
"properties": {
"payload": {
"$ref": "http://asyncapi.com/definitions/2.4.0/schema.json"
}
}
}
},
{
"if": {
"required": [
"schemaFormat"
],
"properties": {
"schemaFormat": {
"enum": [
"application/schema+json;version=draft-07",
"application/schema+yaml;version=draft-07"
]
}
}
},
"then": {
"properties": {
"payload": {
"$ref": "http://json-schema.org/draft-07/schema"
}
}
}
},
{
"if": {
"required": [
"schemaFormat"
],
"properties": {
"schemaFormat": {
"enum": [
"application/vnd.oai.openapi;version=3.0.0",
"application/vnd.oai.openapi+json;version=3.0.0",
"application/vnd.oai.openapi+yaml;version=3.0.0"
]
}
}
},
"then": {
"properties": {
"payload": {
"$ref": "http://asyncapi.com/definitions/2.4.0/openapiSchema_3_0.json"
}
}
}
},
{
"if": {
"required": [
"schemaFormat"
],
"properties": {
"schemaFormat": {
"enum": [
"application/vnd.apache.avro;version=1.9.0",
"application/vnd.apache.avro+json;version=1.9.0",
"application/vnd.apache.avro+yaml;version=1.9.0"
]
}
}
},
"then": {
"properties": {
"payload": {
"$ref": "http://asyncapi.com/definitions/2.4.0/avroSchema_v1.json"
}
}
}
}
]
}
]
}
]
},
"http://asyncapi.com/definitions/2.4.0/correlationId.json": {
"$id": "http://asyncapi.com/definitions/2.4.0/correlationId.json",
"type": "object",
"required": [
"location"
],
"additionalProperties": false,
"patternProperties": {
"^x-[\\w\\d\\.\\x2d_]+$": {
"$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json"
}
},
"properties": {
"description": {
"type": "string",
"description": "A optional description of the correlation ID. GitHub Flavored Markdown is allowed."
},
"location": {
"type": "string",
"description": "A runtime expression that specifies the location of the correlation ID",
"pattern": "^\\$message\\.(header|payload)#(\\/(([^\\/~])|(~[01]))*)*"
}
}
},
"http://asyncapi.com/definitions/2.4.0/messageTrait.json": {
"$id": "http://asyncapi.com/definitions/2.4.0/messageTrait.json",
"type": "object",
"additionalProperties": false,
"patternProperties": {
"^x-[\\w\\d\\.\\x2d_]+$": {
"$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json"
}
},
"properties": {
"schemaFormat": {
"type": "string"
},
"contentType": {
"type": "string"
},
"headers": {
"allOf": [
{
"$ref": "http://asyncapi.com/definitions/2.4.0/schema.json"
},
{
"properties": {
"type": {
"const": "object"
}
}
}
]
},
"messageId": {
"type": "string"