{ "$id": "http://asyncapi.com/definitions/2.3.0/asyncapi.json", "$schema": "http://json-schema.org/draft-07/schema", "title": "AsyncAPI 2.3.0 schema.", "type": "object", "required": [ "asyncapi", "info", "channels" ], "additionalProperties": false, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" } }, "properties": { "asyncapi": { "type": "string", "enum": [ "2.3.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.3.0/info.json" }, "servers": { "$ref": "http://asyncapi.com/definitions/2.3.0/servers.json" }, "defaultContentType": { "type": "string" }, "channels": { "$ref": "http://asyncapi.com/definitions/2.3.0/channels.json" }, "components": { "$ref": "http://asyncapi.com/definitions/2.3.0/components.json" }, "tags": { "type": "array", "items": { "$ref": "http://asyncapi.com/definitions/2.3.0/tag.json" }, "uniqueItems": true }, "externalDocs": { "$ref": "http://asyncapi.com/definitions/2.3.0/externalDocs.json" } }, "definitions": { "http://asyncapi.com/definitions/2.3.0/specificationExtension.json": { "$id": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json", "description": "Any property starting with x- is valid.", "additionalProperties": true, "additionalItems": true }, "http://asyncapi.com/definitions/2.3.0/info.json": { "$id": "http://asyncapi.com/definitions/2.3.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.3.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.3.0/contact.json" }, "license": { "$ref": "http://asyncapi.com/definitions/2.3.0/license.json" } } }, "http://asyncapi.com/definitions/2.3.0/contact.json": { "$id": "http://asyncapi.com/definitions/2.3.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.3.0/specificationExtension.json" } } }, "http://asyncapi.com/definitions/2.3.0/license.json": { "$id": "http://asyncapi.com/definitions/2.3.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.3.0/specificationExtension.json" } } }, "http://asyncapi.com/definitions/2.3.0/servers.json": { "$id": "http://asyncapi.com/definitions/2.3.0/servers.json", "description": "An object representing multiple servers.", "type": "object", "additionalProperties": { "oneOf": [ { "$ref": "http://asyncapi.com/definitions/2.3.0/Reference.json" }, { "$ref": "http://asyncapi.com/definitions/2.3.0/server.json" } ] } }, "http://asyncapi.com/definitions/2.3.0/Reference.json": { "$id": "http://asyncapi.com/definitions/2.3.0/Reference.json", "type": "object", "required": [ "$ref" ], "properties": { "$ref": { "$ref": "http://asyncapi.com/definitions/2.3.0/ReferenceObject.json" } } }, "http://asyncapi.com/definitions/2.3.0/ReferenceObject.json": { "$id": "http://asyncapi.com/definitions/2.3.0/ReferenceObject.json", "type": "string", "format": "uri-reference" }, "http://asyncapi.com/definitions/2.3.0/server.json": { "$id": "http://asyncapi.com/definitions/2.3.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.3.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.3.0/serverVariables.json" }, "security": { "type": "array", "items": { "$ref": "http://asyncapi.com/definitions/2.3.0/SecurityRequirement.json" } }, "bindings": { "$ref": "http://asyncapi.com/definitions/2.3.0/bindingsObject.json" } } }, "http://asyncapi.com/definitions/2.3.0/serverVariables.json": { "$id": "http://asyncapi.com/definitions/2.3.0/serverVariables.json", "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.3.0/serverVariable.json" } }, "http://asyncapi.com/definitions/2.3.0/serverVariable.json": { "$id": "http://asyncapi.com/definitions/2.3.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.3.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.3.0/SecurityRequirement.json": { "$id": "http://asyncapi.com/definitions/2.3.0/SecurityRequirement.json", "type": "object", "additionalProperties": { "type": "array", "items": { "type": "string" }, "uniqueItems": true } }, "http://asyncapi.com/definitions/2.3.0/bindingsObject.json": { "$id": "http://asyncapi.com/definitions/2.3.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.3.0/channels.json": { "$id": "http://asyncapi.com/definitions/2.3.0/channels.json", "type": "object", "propertyNames": { "type": "string", "format": "uri-template", "minLength": 1 }, "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.3.0/channelItem.json" } }, "http://asyncapi.com/definitions/2.3.0/channelItem.json": { "$id": "http://asyncapi.com/definitions/2.3.0/channelItem.json", "type": "object", "additionalProperties": false, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" } }, "properties": { "$ref": { "$ref": "http://asyncapi.com/definitions/2.3.0/ReferenceObject.json" }, "parameters": { "$ref": "http://asyncapi.com/definitions/2.3.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.3.0/operation.json" }, "subscribe": { "$ref": "http://asyncapi.com/definitions/2.3.0/operation.json" }, "deprecated": { "type": "boolean", "default": false }, "bindings": { "$ref": "http://asyncapi.com/definitions/2.3.0/bindingsObject.json" } } }, "http://asyncapi.com/definitions/2.3.0/parameters.json": { "$id": "http://asyncapi.com/definitions/2.3.0/parameters.json", "type": "object", "additionalProperties": { "oneOf": [ { "$ref": "http://asyncapi.com/definitions/2.3.0/Reference.json" }, { "$ref": "http://asyncapi.com/definitions/2.3.0/parameter.json" } ] }, "description": "JSON objects describing re-usable channel parameters." }, "http://asyncapi.com/definitions/2.3.0/parameter.json": { "$id": "http://asyncapi.com/definitions/2.3.0/parameter.json", "additionalProperties": false, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/2.3.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.3.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.3.0/ReferenceObject.json" } } }, "http://asyncapi.com/definitions/2.3.0/schema.json": { "$id": "http://asyncapi.com/definitions/2.3.0/schema.json", "allOf": [ { "$ref": "http://json-schema.org/draft-07/schema#" }, { "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" } }, "properties": { "additionalProperties": { "anyOf": [ { "$ref": "http://asyncapi.com/definitions/2.3.0/schema.json" }, { "type": "boolean" } ], "default": {} }, "items": { "anyOf": [ { "$ref": "http://asyncapi.com/definitions/2.3.0/schema.json" }, { "type": "array", "minItems": 1, "items": { "$ref": "http://asyncapi.com/definitions/2.3.0/schema.json" } } ], "default": {} }, "allOf": { "type": "array", "minItems": 1, "items": { "$ref": "http://asyncapi.com/definitions/2.3.0/schema.json" } }, "oneOf": { "type": "array", "minItems": 1, "items": { "$ref": "http://asyncapi.com/definitions/2.3.0/schema.json" } }, "anyOf": { "type": "array", "minItems": 1, "items": { "$ref": "http://asyncapi.com/definitions/2.3.0/schema.json" } }, "not": { "$ref": "http://asyncapi.com/definitions/2.3.0/schema.json" }, "properties": { "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.3.0/schema.json" }, "default": {} }, "patternProperties": { "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.3.0/schema.json" }, "default": {} }, "propertyNames": { "$ref": "http://asyncapi.com/definitions/2.3.0/schema.json" }, "contains": { "$ref": "http://asyncapi.com/definitions/2.3.0/schema.json" }, "discriminator": { "type": "string" }, "externalDocs": { "$ref": "http://asyncapi.com/definitions/2.3.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.3.0/externalDocs.json": { "$id": "http://asyncapi.com/definitions/2.3.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.3.0/specificationExtension.json" } } }, "http://asyncapi.com/definitions/2.3.0/operation.json": { "$id": "http://asyncapi.com/definitions/2.3.0/operation.json", "type": "object", "additionalProperties": false, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" } }, "properties": { "traits": { "type": "array", "items": { "oneOf": [ { "$ref": "http://asyncapi.com/definitions/2.3.0/Reference.json" }, { "$ref": "http://asyncapi.com/definitions/2.3.0/operationTrait.json" } ] } }, "summary": { "type": "string" }, "description": { "type": "string" }, "tags": { "type": "array", "items": { "$ref": "http://asyncapi.com/definitions/2.3.0/tag.json" }, "uniqueItems": true }, "externalDocs": { "$ref": "http://asyncapi.com/definitions/2.3.0/externalDocs.json" }, "operationId": { "type": "string" }, "bindings": { "$ref": "http://asyncapi.com/definitions/2.3.0/bindingsObject.json" }, "message": { "$ref": "http://asyncapi.com/definitions/2.3.0/message.json" } } }, "http://asyncapi.com/definitions/2.3.0/operationTrait.json": { "$id": "http://asyncapi.com/definitions/2.3.0/operationTrait.json", "type": "object", "additionalProperties": false, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" } }, "properties": { "summary": { "type": "string" }, "description": { "type": "string" }, "tags": { "type": "array", "items": { "$ref": "http://asyncapi.com/definitions/2.3.0/tag.json" }, "uniqueItems": true }, "externalDocs": { "$ref": "http://asyncapi.com/definitions/2.3.0/externalDocs.json" }, "operationId": { "type": "string" }, "bindings": { "$ref": "http://asyncapi.com/definitions/2.3.0/bindingsObject.json" } } }, "http://asyncapi.com/definitions/2.3.0/tag.json": { "$id": "http://asyncapi.com/definitions/2.3.0/tag.json", "type": "object", "additionalProperties": false, "required": [ "name" ], "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "externalDocs": { "$ref": "http://asyncapi.com/definitions/2.3.0/externalDocs.json" } }, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" } } }, "http://asyncapi.com/definitions/2.3.0/message.json": { "$id": "http://asyncapi.com/definitions/2.3.0/message.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/2.3.0/Reference.json" }, { "oneOf": [ { "type": "object", "required": [ "oneOf" ], "additionalProperties": false, "properties": { "oneOf": { "type": "array", "items": { "$ref": "http://asyncapi.com/definitions/2.3.0/message.json" } } } }, { "type": "object", "additionalProperties": false, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" } }, "properties": { "schemaFormat": { "type": "string" }, "contentType": { "type": "string" }, "headers": { "allOf": [ { "$ref": "http://asyncapi.com/definitions/2.3.0/schema.json" }, { "properties": { "type": { "const": "object" } } } ] }, "payload": {}, "correlationId": { "oneOf": [ { "$ref": "http://asyncapi.com/definitions/2.3.0/Reference.json" }, { "$ref": "http://asyncapi.com/definitions/2.3.0/correlationId.json" } ] }, "tags": { "type": "array", "items": { "$ref": "http://asyncapi.com/definitions/2.3.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.3.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.3.0/bindingsObject.json" }, "traits": { "type": "array", "items": { "oneOf": [ { "$ref": "http://asyncapi.com/definitions/2.3.0/Reference.json" }, { "$ref": "http://asyncapi.com/definitions/2.3.0/messageTrait.json" } ] } } }, "allOf": [ { "if": { "not": { "required": [ "schemaFormat" ] } }, "then": { "properties": { "payload": { "$ref": "http://asyncapi.com/definitions/2.3.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" ] } } }, "then": { "properties": { "payload": { "$ref": "http://asyncapi.com/definitions/2.3.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.3.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.3.0/avroSchema_v1.json" } } } } ] } ] } ] }, "http://asyncapi.com/definitions/2.3.0/correlationId.json": { "$id": "http://asyncapi.com/definitions/2.3.0/correlationId.json", "type": "object", "required": [ "location" ], "additionalProperties": false, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/2.3.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.3.0/messageTrait.json": { "$id": "http://asyncapi.com/definitions/2.3.0/messageTrait.json", "type": "object", "additionalProperties": false, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" } }, "properties": { "schemaFormat": { "type": "string" }, "contentType": { "type": "string" }, "headers": { "allOf": [ { "$ref": "http://asyncapi.com/definitions/2.3.0/schema.json" }, { "properties": { "type": { "const": "object" } } } ] }, "correlationId": { "oneOf": [ { "$ref": "http://asyncapi.com/definitions/2.3.0/Reference.json" }, { "$ref": "http://asyncapi.com/definitions/2.3.0/correlationId.json" } ] }, "tags": { "type": "array", "items": { "$ref": "http://asyncapi.com/definitions/2.3.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.3.0/externalDocs.json" }, "deprecated": { "type": "boolean", "default": false }, "examples": { "type": "array", "items": { "type": "object" } }, "bindings": { "$ref": "http://asyncapi.com/definitions/2.3.0/bindingsObject.json" } } }, "http://asyncapi.com/definitions/2.3.0/openapiSchema_3_0.json": { "$id": "http://asyncapi.com/definitions/2.3.0/openapiSchema_3_0.json", "type": "object", "definitions": { "ExternalDocumentation": { "type": "object", "required": [ "url" ], "properties": { "description": { "type": "string" }, "url": { "type": "string", "format": "uri-reference" } }, "patternProperties": { "^x-": {} }, "additionalProperties": false }, "Discriminator": { "type": "object", "required": [ "propertyName" ], "properties": { "propertyName": { "type": "string" }, "mapping": { "type": "object", "additionalProperties": { "type": "string" } } } }, "Reference": { "type": "object", "required": [ "$ref" ], "patternProperties": { "^\\$ref$": { "type": "string", "format": "uri-reference" } } }, "XML": { "type": "object", "properties": { "name": { "type": "string" }, "namespace": { "type": "string", "format": "uri" }, "prefix": { "type": "string" }, "attribute": { "type": "boolean", "default": false }, "wrapped": { "type": "boolean", "default": false } }, "patternProperties": { "^x-": {} }, "additionalProperties": false } }, "properties": { "title": { "type": "string" }, "multipleOf": { "type": "number", "exclusiveMinimum": 0 }, "maximum": { "type": "number" }, "exclusiveMaximum": { "type": "boolean", "default": false }, "minimum": { "type": "number" }, "exclusiveMinimum": { "type": "boolean", "default": false }, "maxLength": { "type": "integer", "minimum": 0 }, "minLength": { "type": "integer", "minimum": 0, "default": 0 }, "pattern": { "type": "string", "format": "regex" }, "maxItems": { "type": "integer", "minimum": 0 }, "minItems": { "type": "integer", "minimum": 0, "default": 0 }, "uniqueItems": { "type": "boolean", "default": false }, "maxProperties": { "type": "integer", "minimum": 0 }, "minProperties": { "type": "integer", "minimum": 0, "default": 0 }, "required": { "type": "array", "items": { "type": "string" }, "minItems": 1, "uniqueItems": true }, "enum": { "type": "array", "items": true, "minItems": 1, "uniqueItems": false }, "type": { "type": "string", "enum": [ "array", "boolean", "integer", "number", "object", "string" ] }, "not": { "oneOf": [ { "$ref": "#" }, { "$ref": "#/definitions/Reference" } ] }, "allOf": { "type": "array", "items": { "oneOf": [ { "$ref": "#" }, { "$ref": "#/definitions/Reference" } ] } }, "oneOf": { "type": "array", "items": { "oneOf": [ { "$ref": "#" }, { "$ref": "#/definitions/Reference" } ] } }, "anyOf": { "type": "array", "items": { "oneOf": [ { "$ref": "#" }, { "$ref": "#/definitions/Reference" } ] } }, "items": { "oneOf": [ { "$ref": "#" }, { "$ref": "#/definitions/Reference" } ] }, "properties": { "type": "object", "additionalProperties": { "oneOf": [ { "$ref": "#" }, { "$ref": "#/definitions/Reference" } ] } }, "additionalProperties": { "oneOf": [ { "$ref": "#" }, { "$ref": "#/definitions/Reference" }, { "type": "boolean" } ], "default": true }, "description": { "type": "string" }, "format": { "type": "string" }, "default": true, "nullable": { "type": "boolean", "default": false }, "discriminator": { "$ref": "#/definitions/Discriminator" }, "readOnly": { "type": "boolean", "default": false }, "writeOnly": { "type": "boolean", "default": false }, "example": true, "externalDocs": { "$ref": "#/definitions/ExternalDocumentation" }, "deprecated": { "type": "boolean", "default": false }, "xml": { "$ref": "#/definitions/XML" } }, "patternProperties": { "^x-": true }, "additionalProperties": false }, "http://asyncapi.com/definitions/2.3.0/avroSchema_v1.json": { "$id": "http://asyncapi.com/definitions/2.3.0/avroSchema_v1.json", "definitions": { "avroSchema": { "title": "Avro Schema", "description": "Root Schema", "oneOf": [ { "$ref": "#/definitions/types" } ] }, "types": { "title": "Avro Types", "description": "Allowed Avro types", "oneOf": [ { "$ref": "#/definitions/primitiveType" }, { "$ref": "#/definitions/primitiveTypeWithMetadata" }, { "$ref": "#/definitions/customTypeReference" }, { "$ref": "#/definitions/avroRecord" }, { "$ref": "#/definitions/avroEnum" }, { "$ref": "#/definitions/avroArray" }, { "$ref": "#/definitions/avroMap" }, { "$ref": "#/definitions/avroFixed" }, { "$ref": "#/definitions/avroUnion" } ] }, "primitiveType": { "title": "Primitive Type", "description": "Basic type primitives.", "type": "string", "enum": [ "null", "boolean", "int", "long", "float", "double", "bytes", "string" ] }, "primitiveTypeWithMetadata": { "title": "Primitive Type With Metadata", "description": "A primitive type with metadata attached.", "type": "object", "properties": { "type": { "$ref": "#/definitions/primitiveType" } }, "required": [ "type" ] }, "customTypeReference": { "title": "Custom Type", "description": "Reference to a ComplexType", "not": { "$ref": "#/definitions/primitiveType" }, "type": "string", "pattern": "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$" }, "avroUnion": { "title": "Union", "description": "A Union of types", "type": "array", "items": { "$ref": "#/definitions/avroSchema" }, "minItems": 1 }, "avroField": { "title": "Field", "description": "A field within a Record", "type": "object", "properties": { "name": { "$ref": "#/definitions/name" }, "type": { "$ref": "#/definitions/types" }, "doc": { "type": "string" }, "default": true, "order": { "enum": [ "ascending", "descending", "ignore" ] }, "aliases": { "type": "array", "items": { "$ref": "#/definitions/name" } } }, "required": [ "name", "type" ] }, "avroRecord": { "title": "Record", "description": "A Record", "type": "object", "properties": { "type": { "type": "string", "const": "record" }, "name": { "$ref": "#/definitions/name" }, "namespace": { "$ref": "#/definitions/namespace" }, "doc": { "type": "string" }, "aliases": { "type": "array", "items": { "$ref": "#/definitions/name" } }, "fields": { "type": "array", "items": { "$ref": "#/definitions/avroField" } } }, "required": [ "type", "name", "fields" ] }, "avroEnum": { "title": "Enum", "description": "An enumeration", "type": "object", "properties": { "type": { "type": "string", "const": "enum" }, "name": { "$ref": "#/definitions/name" }, "namespace": { "$ref": "#/definitions/namespace" }, "doc": { "type": "string" }, "aliases": { "type": "array", "items": { "$ref": "#/definitions/name" } }, "symbols": { "type": "array", "items": { "$ref": "#/definitions/name" } } }, "required": [ "type", "name", "symbols" ] }, "avroArray": { "title": "Array", "description": "An array", "type": "object", "properties": { "type": { "type": "string", "const": "array" }, "name": { "$ref": "#/definitions/name" }, "namespace": { "$ref": "#/definitions/namespace" }, "doc": { "type": "string" }, "aliases": { "type": "array", "items": { "$ref": "#/definitions/name" } }, "items": { "$ref": "#/definitions/types" } }, "required": [ "type", "items" ] }, "avroMap": { "title": "Map", "description": "A map of values", "type": "object", "properties": { "type": { "type": "string", "const": "map" }, "name": { "$ref": "#/definitions/name" }, "namespace": { "$ref": "#/definitions/namespace" }, "doc": { "type": "string" }, "aliases": { "type": "array", "items": { "$ref": "#/definitions/name" } }, "values": { "$ref": "#/definitions/types" } }, "required": [ "type", "values" ] }, "avroFixed": { "title": "Fixed", "description": "A fixed sized array of bytes", "type": "object", "properties": { "type": { "type": "string", "const": "fixed" }, "name": { "$ref": "#/definitions/name" }, "namespace": { "$ref": "#/definitions/namespace" }, "doc": { "type": "string" }, "aliases": { "type": "array", "items": { "$ref": "#/definitions/name" } }, "size": { "type": "number" } }, "required": [ "type", "name", "size" ] }, "name": { "type": "string", "pattern": "^[A-Za-z_][A-Za-z0-9_]*$" }, "namespace": { "type": "string", "pattern": "^([A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*)*$" } }, "description": "Json-Schema definition for Avro AVSC files.", "oneOf": [ { "$ref": "#/definitions/avroSchema" } ], "title": "Avro Schema Definition" }, "http://asyncapi.com/definitions/2.3.0/components.json": { "$id": "http://asyncapi.com/definitions/2.3.0/components.json", "type": "object", "description": "An object to hold a set of reusable objects for different aspects of the AsyncAPI Specification.", "additionalProperties": false, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" } }, "properties": { "schemas": { "$ref": "http://asyncapi.com/definitions/2.3.0/schemas.json" }, "servers": { "$ref": "http://asyncapi.com/definitions/2.3.0/servers.json" }, "channels": { "$ref": "http://asyncapi.com/definitions/2.3.0/channels.json" }, "messages": { "$ref": "http://asyncapi.com/definitions/2.3.0/messages.json" }, "securitySchemes": { "type": "object", "patternProperties": { "^[\\w\\d\\.\\-_]+$": { "oneOf": [ { "$ref": "http://asyncapi.com/definitions/2.3.0/Reference.json" }, { "$ref": "http://asyncapi.com/definitions/2.3.0/SecurityScheme.json" } ] } } }, "parameters": { "$ref": "http://asyncapi.com/definitions/2.3.0/parameters.json" }, "correlationIds": { "type": "object", "patternProperties": { "^[\\w\\d\\.\\-_]+$": { "oneOf": [ { "$ref": "http://asyncapi.com/definitions/2.3.0/Reference.json" }, { "$ref": "http://asyncapi.com/definitions/2.3.0/correlationId.json" } ] } } }, "operationTraits": { "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.3.0/operationTrait.json" } }, "messageTraits": { "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.3.0/messageTrait.json" } }, "serverBindings": { "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.3.0/bindingsObject.json" } }, "channelBindings": { "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.3.0/bindingsObject.json" } }, "operationBindings": { "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.3.0/bindingsObject.json" } }, "messageBindings": { "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.3.0/bindingsObject.json" } } } }, "http://asyncapi.com/definitions/2.3.0/schemas.json": { "$id": "http://asyncapi.com/definitions/2.3.0/schemas.json", "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.3.0/schema.json" }, "description": "JSON objects describing schemas the API uses." }, "http://asyncapi.com/definitions/2.3.0/messages.json": { "$id": "http://asyncapi.com/definitions/2.3.0/messages.json", "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.3.0/message.json" }, "description": "JSON objects describing the messages being consumed and produced by the API." }, "http://asyncapi.com/definitions/2.3.0/SecurityScheme.json": { "$id": "http://asyncapi.com/definitions/2.3.0/SecurityScheme.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/2.3.0/userPassword.json" }, { "$ref": "http://asyncapi.com/definitions/2.3.0/apiKey.json" }, { "$ref": "http://asyncapi.com/definitions/2.3.0/X509.json" }, { "$ref": "http://asyncapi.com/definitions/2.3.0/symmetricEncryption.json" }, { "$ref": "http://asyncapi.com/definitions/2.3.0/asymmetricEncryption.json" }, { "$ref": "http://asyncapi.com/definitions/2.3.0/HTTPSecurityScheme.json" }, { "$ref": "http://asyncapi.com/definitions/2.3.0/oauth2Flows.json" }, { "$ref": "http://asyncapi.com/definitions/2.3.0/openIdConnect.json" }, { "$ref": "http://asyncapi.com/definitions/2.3.0/SaslSecurityScheme.json" } ] }, "http://asyncapi.com/definitions/2.3.0/userPassword.json": { "$id": "http://asyncapi.com/definitions/2.3.0/userPassword.json", "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "userPassword" ] }, "description": { "type": "string" } }, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" } }, "additionalProperties": false }, "http://asyncapi.com/definitions/2.3.0/apiKey.json": { "$id": "http://asyncapi.com/definitions/2.3.0/apiKey.json", "type": "object", "required": [ "type", "in" ], "properties": { "type": { "type": "string", "enum": [ "apiKey" ] }, "in": { "type": "string", "enum": [ "user", "password" ] }, "description": { "type": "string" } }, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" } }, "additionalProperties": false }, "http://asyncapi.com/definitions/2.3.0/X509.json": { "$id": "http://asyncapi.com/definitions/2.3.0/X509.json", "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "X509" ] }, "description": { "type": "string" } }, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" } }, "additionalProperties": false }, "http://asyncapi.com/definitions/2.3.0/symmetricEncryption.json": { "$id": "http://asyncapi.com/definitions/2.3.0/symmetricEncryption.json", "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "symmetricEncryption" ] }, "description": { "type": "string" } }, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" } }, "additionalProperties": false }, "http://asyncapi.com/definitions/2.3.0/asymmetricEncryption.json": { "$id": "http://asyncapi.com/definitions/2.3.0/asymmetricEncryption.json", "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "asymmetricEncryption" ] }, "description": { "type": "string" } }, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" } }, "additionalProperties": false }, "http://asyncapi.com/definitions/2.3.0/HTTPSecurityScheme.json": { "$id": "http://asyncapi.com/definitions/2.3.0/HTTPSecurityScheme.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/2.3.0/NonBearerHTTPSecurityScheme.json" }, { "$ref": "http://asyncapi.com/definitions/2.3.0/BearerHTTPSecurityScheme.json" }, { "$ref": "http://asyncapi.com/definitions/2.3.0/APIKeyHTTPSecurityScheme.json" } ] }, "http://asyncapi.com/definitions/2.3.0/NonBearerHTTPSecurityScheme.json": { "$id": "http://asyncapi.com/definitions/2.3.0/NonBearerHTTPSecurityScheme.json", "not": { "type": "object", "properties": { "scheme": { "type": "string", "enum": [ "bearer" ] } } }, "type": "object", "required": [ "scheme", "type" ], "properties": { "scheme": { "type": "string" }, "description": { "type": "string" }, "type": { "type": "string", "enum": [ "http" ] } }, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" } }, "additionalProperties": false }, "http://asyncapi.com/definitions/2.3.0/BearerHTTPSecurityScheme.json": { "$id": "http://asyncapi.com/definitions/2.3.0/BearerHTTPSecurityScheme.json", "type": "object", "required": [ "type", "scheme" ], "properties": { "scheme": { "type": "string", "enum": [ "bearer" ] }, "bearerFormat": { "type": "string" }, "type": { "type": "string", "enum": [ "http" ] }, "description": { "type": "string" } }, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" } }, "additionalProperties": false }, "http://asyncapi.com/definitions/2.3.0/APIKeyHTTPSecurityScheme.json": { "$id": "http://asyncapi.com/definitions/2.3.0/APIKeyHTTPSecurityScheme.json", "type": "object", "required": [ "type", "name", "in" ], "properties": { "type": { "type": "string", "enum": [ "httpApiKey" ] }, "name": { "type": "string" }, "in": { "type": "string", "enum": [ "header", "query", "cookie" ] }, "description": { "type": "string" } }, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" } }, "additionalProperties": false }, "http://asyncapi.com/definitions/2.3.0/oauth2Flows.json": { "$id": "http://asyncapi.com/definitions/2.3.0/oauth2Flows.json", "type": "object", "required": [ "type", "flows" ], "properties": { "type": { "type": "string", "enum": [ "oauth2" ] }, "description": { "type": "string" }, "flows": { "type": "object", "properties": { "implicit": { "allOf": [ { "$ref": "http://asyncapi.com/definitions/2.3.0/oauth2Flow.json" }, { "required": [ "authorizationUrl", "scopes" ] }, { "not": { "required": [ "tokenUrl" ] } } ] }, "password": { "allOf": [ { "$ref": "http://asyncapi.com/definitions/2.3.0/oauth2Flow.json" }, { "required": [ "tokenUrl", "scopes" ] }, { "not": { "required": [ "authorizationUrl" ] } } ] }, "clientCredentials": { "allOf": [ { "$ref": "http://asyncapi.com/definitions/2.3.0/oauth2Flow.json" }, { "required": [ "tokenUrl", "scopes" ] }, { "not": { "required": [ "authorizationUrl" ] } } ] }, "authorizationCode": { "allOf": [ { "$ref": "http://asyncapi.com/definitions/2.3.0/oauth2Flow.json" }, { "required": [ "authorizationUrl", "tokenUrl", "scopes" ] } ] } }, "additionalProperties": false } }, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" } } }, "http://asyncapi.com/definitions/2.3.0/oauth2Flow.json": { "$id": "http://asyncapi.com/definitions/2.3.0/oauth2Flow.json", "type": "object", "properties": { "authorizationUrl": { "type": "string", "format": "uri" }, "tokenUrl": { "type": "string", "format": "uri" }, "refreshUrl": { "type": "string", "format": "uri" }, "scopes": { "$ref": "http://asyncapi.com/definitions/2.3.0/oauth2Scopes.json" } }, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" } }, "additionalProperties": false }, "http://asyncapi.com/definitions/2.3.0/oauth2Scopes.json": { "$id": "http://asyncapi.com/definitions/2.3.0/oauth2Scopes.json", "type": "object", "additionalProperties": { "type": "string" } }, "http://asyncapi.com/definitions/2.3.0/openIdConnect.json": { "$id": "http://asyncapi.com/definitions/2.3.0/openIdConnect.json", "type": "object", "required": [ "type", "openIdConnectUrl" ], "properties": { "type": { "type": "string", "enum": [ "openIdConnect" ] }, "description": { "type": "string" }, "openIdConnectUrl": { "type": "string", "format": "uri" } }, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" } }, "additionalProperties": false }, "http://asyncapi.com/definitions/2.3.0/SaslSecurityScheme.json": { "$id": "http://asyncapi.com/definitions/2.3.0/SaslSecurityScheme.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/2.3.0/SaslPlainSecurityScheme.json" }, { "$ref": "http://asyncapi.com/definitions/2.3.0/SaslScramSecurityScheme.json" }, { "$ref": "http://asyncapi.com/definitions/2.3.0/SaslGssapiSecurityScheme.json" } ] }, "http://asyncapi.com/definitions/2.3.0/SaslPlainSecurityScheme.json": { "$id": "http://asyncapi.com/definitions/2.3.0/SaslPlainSecurityScheme.json", "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "plain" ] }, "description": { "type": "string" } }, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" } }, "additionalProperties": false }, "http://asyncapi.com/definitions/2.3.0/SaslScramSecurityScheme.json": { "$id": "http://asyncapi.com/definitions/2.3.0/SaslScramSecurityScheme.json", "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "scramSha256", "scramSha512" ] }, "description": { "type": "string" } }, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" } }, "additionalProperties": false }, "http://asyncapi.com/definitions/2.3.0/SaslGssapiSecurityScheme.json": { "$id": "http://asyncapi.com/definitions/2.3.0/SaslGssapiSecurityScheme.json", "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "gssapi" ] }, "description": { "type": "string" } }, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" } }, "additionalProperties": false } }, "description": "!!Auto generated!! \n Do not manually edit. " }