diff --git a/bindings/amqp/0.2.0/channel.json b/bindings/amqp/0.2.0/channel.json index ae692fa1..311e5589 100644 --- a/bindings/amqp/0.2.0/channel.json +++ b/bindings/amqp/0.2.0/channel.json @@ -3,134 +3,147 @@ "$id": "http://asyncapi.com/bindings/amqp/0.2.0/channel.json", "title": "AMQP channel bindings object", "description": "This object contains information about the channel representation in AMQP.", + "examples": [ + { + "bindingVersion": "0.2.0", + "exchange": { + "type": "topic", + "autoDelete": false, + "durable": true, + "name": "myExchange", + "vhost": "/" + }, + "is": "routingKey" + }, + { + "bindingVersion": "0.2.0", + "is": "queue", + "queue": { + "autoDelete": false, + "durable": true, + "exclusive": true, + "name": "my-queue-name", + "vhost": "/" + } + } + ], "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + "oneOf": [ + { + "not": { + "required": [ + "queue" + ] + }, + "required": [ + "exchange" + ], + "properties": { + "is": { + "const": "routingKey" + } + } + }, + { + "not": { + "required": [ + "exchange" + ] + }, + "required": [ + "queue" + ], + "properties": { + "is": { + "const": "queue" + } + } } - }, + ], "properties": { - "is": { + "bindingVersion": { + "description": "The version of this binding. If omitted, 'latest' MUST be assumed.", "type": "string", - "enum": ["queue", "routingKey"], - "description": "Defines what type of channel is it. Can be either 'queue' or 'routingKey' (default)." + "enum": [ + "0.2.0" + ] }, "exchange": { + "description": "When is=routingKey, this object defines the exchange properties.", "type": "object", "properties": { - "name": { - "type": "string", - "maxLength": 255, - "description": "The name of the exchange. It MUST NOT exceed 255 characters long." - }, "type": { + "description": "The type of the exchange. Can be either 'topic', 'direct', 'fanout', 'default' or 'headers'.", "type": "string", - "enum": ["topic", "direct", "fanout", "default", "headers"], - "description": "The type of the exchange. Can be either 'topic', 'direct', 'fanout', 'default' or 'headers'." + "enum": [ + "topic", + "direct", + "fanout", + "default", + "headers" + ] + }, + "autoDelete": { + "description": "Whether the exchange should be deleted when the last queue is unbound from it.", + "type": "boolean" }, "durable": { - "type": "boolean", - "description": "Whether the exchange should survive broker restarts or not." + "description": "Whether the exchange should survive broker restarts or not.", + "type": "boolean" }, - "autoDelete": { - "type": "boolean", - "description": "Whether the exchange should be deleted when the last queue is unbound from it." + "name": { + "description": "The name of the exchange. It MUST NOT exceed 255 characters long.", + "type": "string", + "maxLength": 255 }, "vhost": { - "type": "string", + "description": "The virtual host of the exchange. Defaults to '/'.", "default": "/", - "description": "The virtual host of the exchange. Defaults to '/'." + "type": "string" } - }, - "description": "When is=routingKey, this object defines the exchange properties." + } + }, + "is": { + "description": "Defines what type of channel is it. Can be either 'queue' or 'routingKey' (default).", + "type": "string", + "enum": [ + "queue", + "routingKey" + ] }, "queue": { + "description": "When is=queue, this object defines the queue properties.", "type": "object", "properties": { - "name": { - "type": "string", - "maxLength": 255, - "description": "The name of the queue. It MUST NOT exceed 255 characters long." + "autoDelete": { + "description": "Whether the queue should be deleted when the last consumer unsubscribes.", + "type": "boolean" }, "durable": { - "type": "boolean", - "description": "Whether the queue should survive broker restarts or not." + "description": "Whether the queue should survive broker restarts or not.", + "type": "boolean" }, "exclusive": { - "type": "boolean", - "description": "Whether the queue should be used only by one connection or not." + "description": "Whether the queue should be used only by one connection or not.", + "type": "boolean" }, - "autoDelete": { - "type": "boolean", - "description": "Whether the queue should be deleted when the last consumer unsubscribes." + "name": { + "description": "The name of the queue. It MUST NOT exceed 255 characters long.", + "type": "string", + "maxLength": 255 }, "vhost": { - "type": "string", + "description": "The virtual host of the queue. Defaults to '/'.", "default": "/", - "description": "The virtual host of the queue. Defaults to '/'." + "type": "string" } - }, - "description": "When is=queue, this object defines the queue properties." - }, - "bindingVersion": { - "type": "string", - "enum": [ - "0.2.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.2.0" - }, - { - "is": "queue", - "queue": { - "name": "my-queue-name", - "durable": true, - "exclusive": true, - "autoDelete": false, - "vhost": "/" - }, - "bindingVersion": "0.2.0" + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - ] + }, + "additionalProperties": false } diff --git a/bindings/amqp/0.2.0/message.json b/bindings/amqp/0.2.0/message.json index 3a213d19..a210cac2 100644 --- a/bindings/amqp/0.2.0/message.json +++ b/bindings/amqp/0.2.0/message.json @@ -3,35 +3,35 @@ "$id": "http://asyncapi.com/bindings/amqp/0.2.0/message.json", "title": "AMQP message bindings object", "description": "This object contains information about the message representation in AMQP.", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + "examples": [ + { + "contentEncoding": "gzip", + "bindingVersion": "0.2.0", + "messageType": "user.signup" } - }, + ], + "type": "object", "properties": { "contentEncoding": { - "type": "string", - "description": "A MIME encoding for the message content." - }, - "messageType": { - "type": "string", - "description": "Application-specific message type." + "description": "A MIME encoding for the message content.", + "type": "string" }, "bindingVersion": { + "description": "The version of this binding. If omitted, \"latest\" MUST be assumed.", "type": "string", "enum": [ "0.2.0" - ], - "description": "The version of this binding. If omitted, \"latest\" MUST be assumed." + ] + }, + "messageType": { + "description": "Application-specific message type.", + "type": "string" } }, - "examples": [ - { - "contentEncoding": "gzip", - "messageType": "user.signup", - "bindingVersion": "0.2.0" + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - ] + }, + "additionalProperties": false } diff --git a/bindings/amqp/0.2.0/operation.json b/bindings/amqp/0.2.0/operation.json index f39900f3..2aeb6bc4 100644 --- a/bindings/amqp/0.2.0/operation.json +++ b/bindings/amqp/0.2.0/operation.json @@ -3,87 +3,90 @@ "$id": "http://asyncapi.com/bindings/amqp/0.2.0/operation.json", "title": "AMQP operation bindings object", "description": "This object contains information about the operation representation in AMQP.", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + "examples": [ + { + "ack": false, + "bcc": [ + "external.audit" + ], + "bindingVersion": "0.2.0", + "cc": [ + "user.logs" + ], + "deliveryMode": 2, + "expiration": 100000, + "mandatory": false, + "priority": 10, + "replyTo": "user.signedup", + "timestamp": true, + "userId": "guest" } - }, + ], + "type": "object", "properties": { - "expiration": { - "type": "integer", - "minimum": 0, - "description": "TTL (Time-To-Live) for the message. It MUST be greater than or equal to zero." + "ack": { + "description": "Whether the consumer should ack the message or not.", + "type": "boolean" }, - "userId": { + "bcc": { + "description": "Like cc but consumers will not receive this information.", + "type": "array", + "items": { + "type": "string" + } + }, + "bindingVersion": { + "description": "The version of this binding. If omitted, \"latest\" MUST be assumed.", "type": "string", - "description": "Identifies the user who has sent the message." + "enum": [ + "0.2.0" + ] }, "cc": { + "description": "The routing keys the message should be routed to at the time of publishing.", "type": "array", "items": { "type": "string" - }, - "description": "The routing keys the message should be routed to at the time of publishing." + } }, - "priority": { + "deliveryMode": { + "description": "Delivery mode of the message. Its value MUST be either 1 (transient) or 2 (persistent).", "type": "integer", - "description": "A priority for the message." + "enum": [ + 1, + 2 + ] }, - "deliveryMode": { + "expiration": { + "description": "TTL (Time-To-Live) for the message. It MUST be greater than or equal to zero.", "type": "integer", - "enum": [1,2], - "description": "Delivery mode of the message. Its value MUST be either 1 (transient) or 2 (persistent)." + "minimum": 0 }, "mandatory": { - "type": "boolean", - "description": "Whether the message is mandatory or not." + "description": "Whether the message is mandatory or not.", + "type": "boolean" }, - "bcc": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Like cc but consumers will not receive this information." + "priority": { + "description": "A priority for the message.", + "type": "integer" }, "replyTo": { - "type": "string", - "description": "Name of the queue where the consumer should send the response." + "description": "Name of the queue where the consumer should send the response.", + "type": "string" }, "timestamp": { - "type": "boolean", - "description": "Whether the message should include a timestamp or not." - }, - "ack": { - "type": "boolean", - "description": "Whether the consumer should ack the message or not." + "description": "Whether the message should include a timestamp or not.", + "type": "boolean" }, - "bindingVersion": { - "type": "string", - "enum": [ - "0.2.0" - ], - "description": "The version of this binding. If omitted, \"latest\" MUST be assumed." + "userId": { + "description": "Identifies the user who has sent the message.", + "type": "string" } }, - "examples": [ - { - "expiration": 100000, - "userId": "guest", - "cc": [ - "user.logs" - ], - "priority": 10, - "deliveryMode": 2, - "mandatory": false, - "bcc": [ - "external.audit" - ], - "replyTo": "user.signedup", - "timestamp": true, - "ack": false, - "bindingVersion": "0.2.0" + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - ] + }, + "additionalProperties": false } diff --git a/bindings/amqp/0.3.0/channel.json b/bindings/amqp/0.3.0/channel.json index 383cd691..90089f97 100644 --- a/bindings/amqp/0.3.0/channel.json +++ b/bindings/amqp/0.3.0/channel.json @@ -3,134 +3,147 @@ "$id": "http://asyncapi.com/bindings/amqp/0.3.0/channel.json", "title": "AMQP channel bindings object", "description": "This object contains information about the channel representation in AMQP.", + "examples": [ + { + "bindingVersion": "0.3.0", + "exchange": { + "type": "topic", + "autoDelete": false, + "durable": true, + "name": "myExchange", + "vhost": "/" + }, + "is": "routingKey" + }, + { + "bindingVersion": "0.3.0", + "is": "queue", + "queue": { + "autoDelete": false, + "durable": true, + "exclusive": true, + "name": "my-queue-name", + "vhost": "/" + } + } + ], "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + "oneOf": [ + { + "not": { + "required": [ + "queue" + ] + }, + "required": [ + "exchange" + ], + "properties": { + "is": { + "const": "routingKey" + } + } + }, + { + "not": { + "required": [ + "exchange" + ] + }, + "required": [ + "queue" + ], + "properties": { + "is": { + "const": "queue" + } + } } - }, + ], "properties": { - "is": { + "bindingVersion": { + "description": "The version of this binding. If omitted, 'latest' MUST be assumed.", "type": "string", - "enum": ["queue", "routingKey"], - "description": "Defines what type of channel is it. Can be either 'queue' or 'routingKey' (default)." + "enum": [ + "0.3.0" + ] }, "exchange": { + "description": "When is=routingKey, this object defines the exchange properties.", "type": "object", "properties": { - "name": { - "type": "string", - "maxLength": 255, - "description": "The name of the exchange. It MUST NOT exceed 255 characters long." - }, "type": { + "description": "The type of the exchange. Can be either 'topic', 'direct', 'fanout', 'default' or 'headers'.", "type": "string", - "enum": ["topic", "direct", "fanout", "default", "headers"], - "description": "The type of the exchange. Can be either 'topic', 'direct', 'fanout', 'default' or 'headers'." + "enum": [ + "topic", + "direct", + "fanout", + "default", + "headers" + ] + }, + "autoDelete": { + "description": "Whether the exchange should be deleted when the last queue is unbound from it.", + "type": "boolean" }, "durable": { - "type": "boolean", - "description": "Whether the exchange should survive broker restarts or not." + "description": "Whether the exchange should survive broker restarts or not.", + "type": "boolean" }, - "autoDelete": { - "type": "boolean", - "description": "Whether the exchange should be deleted when the last queue is unbound from it." + "name": { + "description": "The name of the exchange. It MUST NOT exceed 255 characters long.", + "type": "string", + "maxLength": 255 }, "vhost": { - "type": "string", + "description": "The virtual host of the exchange. Defaults to '/'.", "default": "/", - "description": "The virtual host of the exchange. Defaults to '/'." + "type": "string" } - }, - "description": "When is=routingKey, this object defines the exchange properties." + } + }, + "is": { + "description": "Defines what type of channel is it. Can be either 'queue' or 'routingKey' (default).", + "type": "string", + "enum": [ + "queue", + "routingKey" + ] }, "queue": { + "description": "When is=queue, this object defines the queue properties.", "type": "object", "properties": { - "name": { - "type": "string", - "maxLength": 255, - "description": "The name of the queue. It MUST NOT exceed 255 characters long." + "autoDelete": { + "description": "Whether the queue should be deleted when the last consumer unsubscribes.", + "type": "boolean" }, "durable": { - "type": "boolean", - "description": "Whether the queue should survive broker restarts or not." + "description": "Whether the queue should survive broker restarts or not.", + "type": "boolean" }, "exclusive": { - "type": "boolean", - "description": "Whether the queue should be used only by one connection or not." + "description": "Whether the queue should be used only by one connection or not.", + "type": "boolean" }, - "autoDelete": { - "type": "boolean", - "description": "Whether the queue should be deleted when the last consumer unsubscribes." + "name": { + "description": "The name of the queue. It MUST NOT exceed 255 characters long.", + "type": "string", + "maxLength": 255 }, "vhost": { - "type": "string", + "description": "The virtual host of the queue. Defaults to '/'.", "default": "/", - "description": "The virtual host of the queue. Defaults to '/'." + "type": "string" } - }, - "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" + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - ] + }, + "additionalProperties": false } diff --git a/bindings/amqp/0.3.0/message.json b/bindings/amqp/0.3.0/message.json index ba1c7352..737815b0 100644 --- a/bindings/amqp/0.3.0/message.json +++ b/bindings/amqp/0.3.0/message.json @@ -3,35 +3,35 @@ "$id": "http://asyncapi.com/bindings/amqp/0.3.0/message.json", "title": "AMQP message bindings object", "description": "This object contains information about the message representation in AMQP.", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + "examples": [ + { + "contentEncoding": "gzip", + "bindingVersion": "0.3.0", + "messageType": "user.signup" } - }, + ], + "type": "object", "properties": { "contentEncoding": { - "type": "string", - "description": "A MIME encoding for the message content." - }, - "messageType": { - "type": "string", - "description": "Application-specific message type." + "description": "A MIME encoding for the message content.", + "type": "string" }, "bindingVersion": { + "description": "The version of this binding. If omitted, \"latest\" MUST be assumed.", "type": "string", "enum": [ "0.3.0" - ], - "description": "The version of this binding. If omitted, \"latest\" MUST be assumed." + ] + }, + "messageType": { + "description": "Application-specific message type.", + "type": "string" } }, - "examples": [ - { - "contentEncoding": "gzip", - "messageType": "user.signup", - "bindingVersion": "0.3.0" + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - ] + }, + "additionalProperties": false } diff --git a/bindings/amqp/0.3.0/operation.json b/bindings/amqp/0.3.0/operation.json index 1c359113..8f20271a 100644 --- a/bindings/amqp/0.3.0/operation.json +++ b/bindings/amqp/0.3.0/operation.json @@ -3,82 +3,85 @@ "$id": "http://asyncapi.com/bindings/amqp/0.3.0/operation.json", "title": "AMQP operation bindings object", "description": "This object contains information about the operation representation in AMQP.", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + "examples": [ + { + "ack": false, + "bcc": [ + "external.audit" + ], + "bindingVersion": "0.3.0", + "cc": [ + "user.logs" + ], + "deliveryMode": 2, + "expiration": 100000, + "mandatory": false, + "priority": 10, + "timestamp": true, + "userId": "guest" } - }, + ], + "type": "object", "properties": { - "expiration": { - "type": "integer", - "minimum": 0, - "description": "TTL (Time-To-Live) for the message. It MUST be greater than or equal to zero." + "ack": { + "description": "Whether the consumer should ack the message or not.", + "type": "boolean" }, - "userId": { + "bcc": { + "description": "Like cc but consumers will not receive this information.", + "type": "array", + "items": { + "type": "string" + } + }, + "bindingVersion": { + "description": "The version of this binding. If omitted, \"latest\" MUST be assumed.", "type": "string", - "description": "Identifies the user who has sent the message." + "enum": [ + "0.3.0" + ] }, "cc": { + "description": "The routing keys the message should be routed to at the time of publishing.", "type": "array", "items": { "type": "string" - }, - "description": "The routing keys the message should be routed to at the time of publishing." + } }, - "priority": { + "deliveryMode": { + "description": "Delivery mode of the message. Its value MUST be either 1 (transient) or 2 (persistent).", "type": "integer", - "description": "A priority for the message." + "enum": [ + 1, + 2 + ] }, - "deliveryMode": { + "expiration": { + "description": "TTL (Time-To-Live) for the message. It MUST be greater than or equal to zero.", "type": "integer", - "enum": [1,2], - "description": "Delivery mode of the message. Its value MUST be either 1 (transient) or 2 (persistent)." + "minimum": 0 }, "mandatory": { - "type": "boolean", - "description": "Whether the message is mandatory or not." + "description": "Whether the message is mandatory or not.", + "type": "boolean" }, - "bcc": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Like cc but consumers will not receive this information." + "priority": { + "description": "A priority for the message.", + "type": "integer" }, "timestamp": { - "type": "boolean", - "description": "Whether the message should include a timestamp or not." + "description": "Whether the message should include a timestamp or not.", + "type": "boolean" }, - "ack": { - "type": "boolean", - "description": "Whether the consumer should ack the message or not." - }, - "bindingVersion": { - "type": "string", - "enum": [ - "0.3.0" - ], - "description": "The version of this binding. If omitted, \"latest\" MUST be assumed." + "userId": { + "description": "Identifies the user who has sent the message.", + "type": "string" } }, - "examples": [ - { - "expiration": 100000, - "userId": "guest", - "cc": [ - "user.logs" - ], - "priority": 10, - "deliveryMode": 2, - "mandatory": false, - "bcc": [ - "external.audit" - ], - "timestamp": true, - "ack": false, - "bindingVersion": "0.3.0" + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - ] + }, + "additionalProperties": false } diff --git a/bindings/anypointmq/0.0.1/channel.json b/bindings/anypointmq/0.0.1/channel.json index 554a842b..41b1acd3 100644 --- a/bindings/anypointmq/0.0.1/channel.json +++ b/bindings/anypointmq/0.0.1/channel.json @@ -3,38 +3,41 @@ "$id": "http://asyncapi.com/bindings/anypointmq/0.0.1/channel.json", "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": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + "examples": [ + { + "bindingVersion": "0.0.1", + "destination": "user-signup-exchg", + "destinationType": "exchange" } - }, + ], + "type": "object", "properties": { - "destination": { + "bindingVersion": { + "description": "The version of this binding. If omitted, 'latest' MUST be assumed.", "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." + "enum": [ + "0.0.1" + ] + }, + "destination": { + "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.", + "type": "string" }, "destinationType": { - "type": "string", - "enum": ["exchange", "queue", "fifo-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.", "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." + "exchange", + "queue", + "fifo-queue" + ] } - }, - "examples": [ - { - "destination": "user-signup-exchg", - "destinationType": "exchange", - "bindingVersion": "0.0.1" + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - ] + }, + "additionalProperties": false } diff --git a/bindings/anypointmq/0.0.1/message.json b/bindings/anypointmq/0.0.1/message.json index 34dddaa0..a7230115 100644 --- a/bindings/anypointmq/0.0.1/message.json +++ b/bindings/anypointmq/0.0.1/message.json @@ -3,15 +3,30 @@ "$id": "http://asyncapi.com/bindings/anypointmq/0.0.1/message.json", "title": "Anypoint MQ message bindings object", "description": "This object contains configuration for describing an Anypoint MQ message as an AsyncAPI message. This objects only contains configuration that can not be provided in the AsyncAPI standard message object.", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + "examples": [ + { + "bindingVersion": "0.0.1", + "headers": { + "type": "object", + "properties": { + "messageId": { + "type": "string" + } + } + } } - }, + ], + "type": "object", "properties": { + "bindingVersion": { + "description": "The version of this binding. If omitted, 'latest' MUST be assumed.", + "type": "string", + "enum": [ + "0.0.1" + ] + }, "headers": { + "description": "A Schema object containing the definitions for Anypoint MQ-specific headers (protocol headers). This schema MUST be of type 'object' and have a 'properties' key. Examples of Anypoint MQ protocol headers are 'messageId' and 'messageGroupId'.", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" @@ -19,29 +34,13 @@ { "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" } - ], - "description": "A Schema object containing the definitions for Anypoint MQ-specific headers (protocol headers). This schema MUST be of type 'object' and have a 'properties' key. Examples of Anypoint MQ protocol headers are 'messageId' and 'messageGroupId'." - }, - "bindingVersion": { - "type": "string", - "enum": [ - "0.0.1" - ], - "description": "The version of this binding. If omitted, 'latest' MUST be assumed." + ] } - }, - "examples": [ - { - "headers": { - "type": "object", - "properties": { - "messageId": { - "type": "string" - } - } - }, - "bindingVersion": "0.0.1" + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - ] + }, + "additionalProperties": false } diff --git a/bindings/googlepubsub/0.1.0/channel.json b/bindings/googlepubsub/0.1.0/channel.json index 6a8105f5..060454d7 100644 --- a/bindings/googlepubsub/0.1.0/channel.json +++ b/bindings/googlepubsub/0.1.0/channel.json @@ -3,20 +3,37 @@ "$id": "http://asyncapi.com/bindings/googlepubsub/0.1.0/channel.json", "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": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + "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" + } } - }, + ], + "type": "object", + "required": [ + "schemaSettings", + "topic" + ], "properties": { "bindingVersion": { + "description": "The version of this binding.", "type": "string", "enum": [ "0.1.0" - ], - "description": "The version of this binding." + ] }, "labels": { "type": "object" @@ -26,7 +43,6 @@ }, "messageStoragePolicy": { "type": "object", - "additionalProperties": false, "properties": { "allowedPersistenceRegions": { "type": "array", @@ -34,11 +50,16 @@ "type": "string" } } - } + }, + "additionalProperties": false }, "schemaSettings": { "type": "object", "additionalItems": false, + "required": [ + "encoding", + "name" + ], "properties": { "encoding": { "type": "string" @@ -52,37 +73,16 @@ "name": { "type": "string" } - }, - "required": [ - "encoding", - "name" - ] + } }, "topic": { "type": "string" } }, - "required": [ - "schemaSettings", - "topic" - ], - "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" - } + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - ] -} \ No newline at end of file + }, + "additionalProperties": false +} diff --git a/bindings/googlepubsub/0.1.0/message.json b/bindings/googlepubsub/0.1.0/message.json index 08f815ff..3aea81ca 100644 --- a/bindings/googlepubsub/0.1.0/message.json +++ b/bindings/googlepubsub/0.1.0/message.json @@ -3,23 +3,31 @@ "$id": "http://asyncapi.com/bindings/googlepubsub/0.1.0/message.json", "title": "Cloud Pub/Sub Channel Schema", "description": "This object contains information about the message representation for Google Cloud Pub/Sub.", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + "examples": [ + { + "schema": { + "type": "avro", + "name": "projects/your-project-id/schemas/your-avro-schema-id" + } + }, + { + "schema": { + "type": "protobuf", + "name": "projects/your-project-id/schemas/your-protobuf-schema-id" + } } - }, + ], + "type": "object", "properties": { + "attributes": { + "type": "object" + }, "bindingVersion": { + "description": "The version of this binding.", "type": "string", "enum": [ "0.1.0" - ], - "description": "The version of this binding." - }, - "attributes": { - "type": "object" + ] }, "orderingKey": { "type": "string" @@ -27,29 +35,24 @@ "schema": { "type": "object", "additionalItems": false, + "required": [ + "name", + "type" + ], "properties": { - "name": { + "type": { "type": "string" }, - "type": { + "name": { "type": "string" } - }, - "required": ["name", "type"] + } } }, - "examples": [ - { - "schema": { - "name": "projects/your-project-id/schemas/your-avro-schema-id", - "type": "avro" - } - }, - { - "schema": { - "name": "projects/your-project-id/schemas/your-protobuf-schema-id", - "type": "protobuf" - } + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - ] -} \ No newline at end of file + }, + "additionalProperties": false +} diff --git a/bindings/googlepubsub/0.2.0/channel.json b/bindings/googlepubsub/0.2.0/channel.json index 3f63e2ab..b884c74c 100644 --- a/bindings/googlepubsub/0.2.0/channel.json +++ b/bindings/googlepubsub/0.2.0/channel.json @@ -3,20 +3,36 @@ "$id": "http://asyncapi.com/bindings/googlepubsub/0.2.0/channel.json", "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": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + "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" + } } - }, + ], + "type": "object", + "required": [ + "schemaSettings" + ], "properties": { "bindingVersion": { + "description": "The version of this binding.", "type": "string", "enum": [ "0.2.0" - ], - "description": "The version of this binding." + ] }, "labels": { "type": "object" @@ -26,7 +42,6 @@ }, "messageStoragePolicy": { "type": "object", - "additionalProperties": false, "properties": { "allowedPersistenceRegions": { "type": "array", @@ -34,11 +49,16 @@ "type": "string" } } - } + }, + "additionalProperties": false }, "schemaSettings": { "type": "object", "additionalItems": false, + "required": [ + "encoding", + "name" + ], "properties": { "encoding": { "type": "string" @@ -52,33 +72,13 @@ "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" - } + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - ] -} \ No newline at end of file + }, + "additionalProperties": false +} diff --git a/bindings/googlepubsub/0.2.0/message.json b/bindings/googlepubsub/0.2.0/message.json index 285b0774..9d382017 100644 --- a/bindings/googlepubsub/0.2.0/message.json +++ b/bindings/googlepubsub/0.2.0/message.json @@ -3,23 +3,29 @@ "$id": "http://asyncapi.com/bindings/googlepubsub/0.2.0/message.json", "title": "Cloud Pub/Sub Channel Schema", "description": "This object contains information about the message representation for Google Cloud Pub/Sub.", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + "examples": [ + { + "schema": { + "name": "projects/your-project-id/schemas/your-avro-schema-id" + } + }, + { + "schema": { + "name": "projects/your-project-id/schemas/your-protobuf-schema-id" + } } - }, + ], + "type": "object", "properties": { + "attributes": { + "type": "object" + }, "bindingVersion": { + "description": "The version of this binding.", "type": "string", "enum": [ "0.2.0" - ], - "description": "The version of this binding." - }, - "attributes": { - "type": "object" + ] }, "orderingKey": { "type": "string" @@ -27,24 +33,20 @@ "schema": { "type": "object", "additionalItems": false, + "required": [ + "name" + ], "properties": { "name": { "type": "string" } - }, - "required": ["name"] + } } }, - "examples": [ - { - "schema": { - "name": "projects/your-project-id/schemas/your-avro-schema-id" - } - }, - { - "schema": { - "name": "projects/your-project-id/schemas/your-protobuf-schema-id" - } + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - ] -} \ No newline at end of file + }, + "additionalProperties": false +} diff --git a/bindings/http/0.1.0/message.json b/bindings/http/0.1.0/message.json index 84fbb679..3ffc4290 100644 --- a/bindings/http/0.1.0/message.json +++ b/bindings/http/0.1.0/message.json @@ -3,35 +3,9 @@ "$id": "http://asyncapi.com/bindings/http/0.1.0/message.json", "title": "HTTP message bindings object", "description": "This object contains information about the message representation in HTTP.", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" - } - }, - "properties": { - "headers": { - "oneOf": [ - { - "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" - }, - { - "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" - } - ], - "description": "\tA Schema object containing the definitions for HTTP-specific headers. 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": [ { + "bindingVersion": "0.1.0", "headers": { "type": "object", "properties": { @@ -42,8 +16,34 @@ ] } } - }, - "bindingVersion": "0.1.0" + } } - ] + ], + "type": "object", + "properties": { + "bindingVersion": { + "description": "The version of this binding. If omitted, \"latest\" MUST be assumed.", + "type": "string", + "enum": [ + "0.1.0" + ] + }, + "headers": { + "description": "\tA Schema object containing the definitions for HTTP-specific headers. This schema MUST be of type 'object' and have a 'properties' key.", + "oneOf": [ + { + "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" + }, + { + "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" + } + ] + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + } + }, + "additionalProperties": false } diff --git a/bindings/http/0.1.0/operation.json b/bindings/http/0.1.0/operation.json index 8ba6b903..7e584551 100644 --- a/bindings/http/0.1.0/operation.json +++ b/bindings/http/0.1.0/operation.json @@ -3,23 +3,91 @@ "$id": "http://asyncapi.com/bindings/http/0.1.0/operation.json", "title": "HTTP operation bindings object", "description": "This object contains information about the operation representation in HTTP.", + "examples": [ + { + "type": "response", + "bindingVersion": "0.1.0", + "query": { + "type": "object", + "required": [ + "companyId" + ], + "properties": { + "companyId": { + "description": "The Id of the company.", + "type": "number", + "minimum": 1 + } + }, + "additionalProperties": false + } + }, + { + "type": "request", + "bindingVersion": "0.1.0", + "method": "GET", + "query": { + "type": "object", + "required": [ + "companyId" + ], + "properties": { + "companyId": { + "description": "The Id of the company.", + "type": "number", + "minimum": 1 + } + }, + "additionalProperties": false + } + } + ], "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + "oneOf": [ + { + "required": [ + "method" + ], + "properties": { + "type": { + "const": "request" + } + } + }, + { + "not": { + "required": [ + "method" + ] + }, + "properties": { + "is": { + "const": "response" + } + } } - }, + ], + "required": [ + "type" + ], "properties": { "type": { + "description": "Required. Type of operation. Its value MUST be either 'request' or 'response'.", "type": "string", "enum": [ "request", "response" - ], - "description": "Required. Type of operation. Its value MUST be either 'request' or 'response'." + ] + }, + "bindingVersion": { + "description": "The version of this binding. If omitted, 'latest' MUST be assumed.", + "type": "string", + "enum": [ + "0.1.0" + ] }, "method": { + "description": "When 'type' is 'request', this is the HTTP method, otherwise it MUST be ignored. Its value MUST be one of 'GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS', 'CONNECT', and 'TRACE'.", "type": "string", "enum": [ "GET", @@ -31,10 +99,10 @@ "OPTIONS", "CONNECT", "TRACE" - ], - "description": "When 'type' is 'request', this is the HTTP method, otherwise it MUST be ignored. Its value MUST be one of 'GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS', 'CONNECT', and 'TRACE'." + ] }, "query": { + "description": "A Schema object containing the definitions for each query parameter. This schema MUST be of type 'object' and have a properties key.", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" @@ -42,85 +110,13 @@ { "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" } - ], - "description": "A Schema object containing the definitions for each query parameter. 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." - } - }, - "required": [ - "type" - ], - "oneOf": [ - { - "properties": { - "type": { - "const": "request" - } - }, - "required": [ - "method" ] - }, - { - "properties": { - "is": { - "const": "response" - } - }, - "not": { - "required": [ - "method" - ] - } } - ], - "examples": [ - { - "type": "response", - "query": { - "type": "object", - "required": [ - "companyId" - ], - "properties": { - "companyId": { - "type": "number", - "minimum": 1, - "description": "The Id of the company." - } - }, - "additionalProperties": false - }, - "bindingVersion": "0.1.0" - }, - { - "type": "request", - "method": "GET", - "query": { - "type": "object", - "required": [ - "companyId" - ], - "properties": { - "companyId": { - "type": "number", - "minimum": 1, - "description": "The Id of the company." - } - }, - "additionalProperties": false - }, - "bindingVersion": "0.1.0" + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - ] + }, + "additionalProperties": false } - - - - diff --git a/bindings/http/0.2.0/message.json b/bindings/http/0.2.0/message.json index 722a47db..d10c159c 100644 --- a/bindings/http/0.2.0/message.json +++ b/bindings/http/0.2.0/message.json @@ -3,28 +3,9 @@ "$id": "http://asyncapi.com/bindings/http/0.2.0/message.json", "title": "HTTP message bindings object", "description": "This object contains information about the message representation in HTTP.", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" - } - }, - "properties": { - "headers": { - "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json", - "description": "\tA Schema object containing the definitions for HTTP-specific headers. This schema MUST be of type 'object' and have a 'properties' key." - }, - "bindingVersion": { - "type": "string", - "enum": [ - "0.2.0" - ], - "description": "The version of this binding. If omitted, \"latest\" MUST be assumed." - } - }, "examples": [ { + "bindingVersion": "0.2.0", "headers": { "type": "object", "properties": { @@ -35,8 +16,27 @@ ] } } - }, - "bindingVersion": "0.2.0" + } } - ] + ], + "type": "object", + "properties": { + "bindingVersion": { + "description": "The version of this binding. If omitted, \"latest\" MUST be assumed.", + "type": "string", + "enum": [ + "0.2.0" + ] + }, + "headers": { + "description": "\tA Schema object containing the definitions for HTTP-specific headers. This schema MUST be of type 'object' and have a 'properties' key.", + "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + } + }, + "additionalProperties": false } diff --git a/bindings/http/0.2.0/operation.json b/bindings/http/0.2.0/operation.json index dae731f2..18daa74a 100644 --- a/bindings/http/0.2.0/operation.json +++ b/bindings/http/0.2.0/operation.json @@ -3,43 +3,9 @@ "$id": "http://asyncapi.com/bindings/http/0.2.0/operation.json", "title": "HTTP operation bindings object", "description": "This object contains information about the operation representation in HTTP.", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" - } - }, - "properties": { - "method": { - "type": "string", - "enum": [ - "GET", - "PUT", - "POST", - "PATCH", - "DELETE", - "HEAD", - "OPTIONS", - "CONNECT", - "TRACE" - ], - "description": "When 'type' is 'request', this is the HTTP method, otherwise it MUST be ignored. Its value MUST be one of 'GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS', 'CONNECT', and 'TRACE'." - }, - "query": { - "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json", - "description": "A Schema object containing the definitions for each query parameter. This schema MUST be of type 'object' and have a properties key." - }, - "bindingVersion": { - "type": "string", - "enum": [ - "0.2.0" - ], - "description": "The version of this binding. If omitted, 'latest' MUST be assumed." - } - }, "examples": [ { + "bindingVersion": "0.2.0", "query": { "type": "object", "required": [ @@ -47,16 +13,16 @@ ], "properties": { "companyId": { + "description": "The Id of the company.", "type": "number", - "minimum": 1, - "description": "The Id of the company." + "minimum": 1 } }, "additionalProperties": false - }, - "bindingVersion": "0.2.0" + } }, { + "bindingVersion": "0.2.0", "method": "GET", "query": { "type": "object", @@ -65,18 +31,48 @@ ], "properties": { "companyId": { + "description": "The Id of the company.", "type": "number", - "minimum": 1, - "description": "The Id of the company." + "minimum": 1 } }, "additionalProperties": false - }, - "bindingVersion": "0.2.0" + } } - ] + ], + "type": "object", + "properties": { + "bindingVersion": { + "description": "The version of this binding. If omitted, 'latest' MUST be assumed.", + "type": "string", + "enum": [ + "0.2.0" + ] + }, + "method": { + "description": "When 'type' is 'request', this is the HTTP method, otherwise it MUST be ignored. Its value MUST be one of 'GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS', 'CONNECT', and 'TRACE'.", + "type": "string", + "enum": [ + "GET", + "PUT", + "POST", + "PATCH", + "DELETE", + "HEAD", + "OPTIONS", + "CONNECT", + "TRACE" + ] + }, + "query": { + "description": "A Schema object containing the definitions for each query parameter. This schema MUST be of type 'object' and have a properties key.", + "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + } + }, + "additionalProperties": false } - - - - diff --git a/bindings/http/0.3.0/message.json b/bindings/http/0.3.0/message.json index 3d8b7f54..a8f1bf54 100644 --- a/bindings/http/0.3.0/message.json +++ b/bindings/http/0.3.0/message.json @@ -3,32 +3,9 @@ "$id": "http://asyncapi.com/bindings/http/0.3.0/message.json", "title": "HTTP message bindings object", "description": "This object contains information about the message representation in HTTP.", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" - } - }, - "properties": { - "headers": { - "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json", - "description": "\tA Schema object containing the definitions for HTTP-specific headers. This schema MUST be of type 'object' and have a 'properties' key." - }, - "statusCode": { - "type": "number", - "description": "The HTTP response status code according to [RFC 9110](https://httpwg.org/specs/rfc9110.html#overview.of.status.codes). `statusCode` is only relevant for messages referenced by the [Operation Reply Object](https://www.asyncapi.com/docs/reference/specification/v3.0.0#operationReplyObject), as it defines the status code for the response. In all other cases, this value can be safely ignored." - }, - "bindingVersion": { - "type": "string", - "enum": [ - "0.3.0" - ], - "description": "The version of this binding. If omitted, \"latest\" MUST be assumed." - } - }, "examples": [ { + "bindingVersion": "0.3.0", "headers": { "type": "object", "properties": { @@ -39,8 +16,31 @@ ] } } - }, - "bindingVersion": "0.3.0" + } } - ] + ], + "type": "object", + "properties": { + "bindingVersion": { + "description": "The version of this binding. If omitted, \"latest\" MUST be assumed.", + "type": "string", + "enum": [ + "0.3.0" + ] + }, + "headers": { + "description": "\tA Schema object containing the definitions for HTTP-specific headers. This schema MUST be of type 'object' and have a 'properties' key.", + "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" + }, + "statusCode": { + "description": "The HTTP response status code according to [RFC 9110](https://httpwg.org/specs/rfc9110.html#overview.of.status.codes). `statusCode` is only relevant for messages referenced by the [Operation Reply Object](https://www.asyncapi.com/docs/reference/specification/v3.0.0#operationReplyObject), as it defines the status code for the response. In all other cases, this value can be safely ignored.", + "type": "number" + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + } + }, + "additionalProperties": false } diff --git a/bindings/http/0.3.0/operation.json b/bindings/http/0.3.0/operation.json index e53ef0c5..5031a930 100644 --- a/bindings/http/0.3.0/operation.json +++ b/bindings/http/0.3.0/operation.json @@ -3,43 +3,9 @@ "$id": "http://asyncapi.com/bindings/http/0.3.0/operation.json", "title": "HTTP operation bindings object", "description": "This object contains information about the operation representation in HTTP.", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" - } - }, - "properties": { - "method": { - "type": "string", - "enum": [ - "GET", - "PUT", - "POST", - "PATCH", - "DELETE", - "HEAD", - "OPTIONS", - "CONNECT", - "TRACE" - ], - "description": "When 'type' is 'request', this is the HTTP method, otherwise it MUST be ignored. Its value MUST be one of 'GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS', 'CONNECT', and 'TRACE'." - }, - "query": { - "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json", - "description": "A Schema object containing the definitions for each query parameter. This schema MUST be of type 'object' and have a properties key." - }, - "bindingVersion": { - "type": "string", - "enum": [ - "0.3.0" - ], - "description": "The version of this binding. If omitted, 'latest' MUST be assumed." - } - }, "examples": [ { + "bindingVersion": "0.3.0", "query": { "type": "object", "required": [ @@ -47,16 +13,16 @@ ], "properties": { "companyId": { + "description": "The Id of the company.", "type": "number", - "minimum": 1, - "description": "The Id of the company." + "minimum": 1 } }, "additionalProperties": false - }, - "bindingVersion": "0.3.0" + } }, { + "bindingVersion": "0.3.0", "method": "GET", "query": { "type": "object", @@ -65,18 +31,48 @@ ], "properties": { "companyId": { + "description": "The Id of the company.", "type": "number", - "minimum": 1, - "description": "The Id of the company." + "minimum": 1 } }, "additionalProperties": false - }, - "bindingVersion": "0.3.0" + } } - ] + ], + "type": "object", + "properties": { + "bindingVersion": { + "description": "The version of this binding. If omitted, 'latest' MUST be assumed.", + "type": "string", + "enum": [ + "0.3.0" + ] + }, + "method": { + "description": "When 'type' is 'request', this is the HTTP method, otherwise it MUST be ignored. Its value MUST be one of 'GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS', 'CONNECT', and 'TRACE'.", + "type": "string", + "enum": [ + "GET", + "PUT", + "POST", + "PATCH", + "DELETE", + "HEAD", + "OPTIONS", + "CONNECT", + "TRACE" + ] + }, + "query": { + "description": "A Schema object containing the definitions for each query parameter. This schema MUST be of type 'object' and have a properties key.", + "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + } + }, + "additionalProperties": false } - - - - diff --git a/bindings/ibmmq/0.1.0/channel.json b/bindings/ibmmq/0.1.0/channel.json index dabc2b45..f5c5a866 100644 --- a/bindings/ibmmq/0.1.0/channel.json +++ b/bindings/ibmmq/0.1.0/channel.json @@ -3,122 +3,131 @@ "$id": "http://asyncapi.com/bindings/ibmmq/0.1.0/channel.json", "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.", + "examples": [ + { + "bindingVersion": "0.1.0", + "destinationType": "topic", + "topic": { + "objectName": "myTopicName" + } + }, + { + "bindingVersion": "0.1.0", + "destinationType": "queue", + "queue": { + "exclusive": true, + "objectName": "myQueueName" + } + } + ], "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + "oneOf": [ + { + "not": { + "required": [ + "queue" + ] + }, + "properties": { + "destinationType": { + "const": "topic" + } + } + }, + { + "not": { + "required": [ + "topic" + ] + }, + "required": [ + "queue" + ], + "properties": { + "destinationType": { + "const": "queue" + } + } } - }, + ], "properties": { - "destinationType": { + "bindingVersion": { + "description": "The version of this binding.", "type": "string", - "enum": ["topic", "queue"], + "enum": [ + "0.1.0" + ] + }, + "destinationType": { + "description": "Defines the type of AsyncAPI channel.", "default": "topic", - "description": "Defines the type of AsyncAPI channel." + "type": "string", + "enum": [ + "topic", + "queue" + ] + }, + "maxMsgLength": { + "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.", + "type": "integer", + "maximum": 104857600, + "minimum": 0 }, "queue": { - "type": "object", "description": "Defines the properties of a queue.", + "type": "object", + "required": [ + "objectName" + ], "properties": { - "objectName": { - "type": "string", - "maxLength": 48, - "description": "Defines the name of the IBM MQ queue associated with the channel." + "exclusive": { + "description": "Specifies if it is recommended to open the queue exclusively.", + "default": false, + "type": "boolean" }, "isPartitioned": { - "type": "boolean", + "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.", "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." + "type": "boolean" }, - "exclusive": { - "type": "boolean", - "default": false, - "description": "Specifies if it is recommended to open the queue exclusively." + "objectName": { + "description": "Defines the name of the IBM MQ queue associated with the channel.", + "type": "string", + "maxLength": 48 } - }, - "required": ["objectName"] + } }, "topic": { - "type": "object", "description": "Defines the properties of a topic.", + "type": "object", "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", + "description": "Defines if the subscription may be durable.", "default": true, - "description": "Defines if the subscription may be durable." + "type": "boolean" }, "lastMsgRetained": { - "type": "boolean", + "description": "Defines if the last message published will be made available to new subscriptions.", "default": false, - "description": "Defines if the last message published will be made available to new subscriptions." + "type": "boolean" + }, + "objectName": { + "description": "The name of the IBM MQ topic object.", + "type": "string", + "maxLength": 48 + }, + "string": { + "description": "The value of the IBM MQ topic string to be used.", + "type": "string", + "maxLength": 10240 } } - }, - "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" + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - ] + }, + "additionalProperties": false } diff --git a/bindings/ibmmq/0.1.0/message.json b/bindings/ibmmq/0.1.0/message.json index 6cc28494..6258aa58 100644 --- a/bindings/ibmmq/0.1.0/message.json +++ b/bindings/ibmmq/0.1.0/message.json @@ -3,79 +3,88 @@ "$id": "http://asyncapi.com/bindings/ibmmq/0.1.0/message.json", "title": "IBM MQ message bindings object", "description": "This object contains information about the message representation in IBM MQ.", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" - } - }, - "properties": { - "type": { - "type": "string", - "enum": ["string", "jms", "binary"], - "default": "string", - "description": "The type of the message." - }, - "headers": { - "type": "string", - "description": "Defines the IBM MQ message headers to include with this message. More than one header can be specified as a comma separated list. Supporting information on IBM MQ message formats can be found on this [page](https://www.ibm.com/docs/en/ibm-mq/9.2?topic=mqmd-format-mqchar8) in the IBM MQ Knowledge Center." - }, - "description": { + "examples": [ + { "type": "string", - "description": "Provides additional information for application developers: describes the message type or format." - }, - "expiry": { - "type": "integer", - "minimum": 0, - "default": 0, - "description": "The recommended setting the client should use for the TTL (Time-To-Live) of the message. This is a period of time expressed in milliseconds and set by the application that puts the message. 'expiry' values are API dependant e.g., MQI and JMS use different units of time and default values for 'unlimited'. General information on IBM MQ message expiry can be found on this [page](https://www.ibm.com/docs/en/ibm-mq/9.2?topic=mqmd-expiry-mqlong) in the IBM MQ Knowledge Center." + "bindingVersion": "0.1.0" }, - "bindingVersion": { - "type": "string", - "enum": [ - "0.1.0" - ], - "description": "The version of this binding." + { + "description": "JMS stream message", + "type": "jms", + "bindingVersion": "0.1.0" } - - }, + ], + "type": "object", "oneOf": [ { "properties": { - "type": { "const": "binary" } + "type": { + "const": "binary" + } } }, { - "properties": { - "type": { "const": "jms" } - }, "not": { "required": [ "headers" ] + }, + "properties": { + "type": { + "const": "jms" + } } }, { - "properties": { - "type": { "const": "string" } - }, "not": { "required": [ "headers" ] + }, + "properties": { + "type": { + "const": "string" + } } } ], - "examples": [ - { + "properties": { + "description": { + "description": "Provides additional information for application developers: describes the message type or format.", + "type": "string" + }, + "type": { + "description": "The type of the message.", + "default": "string", "type": "string", - "bindingVersion": "0.1.0" + "enum": [ + "string", + "jms", + "binary" + ] }, - { - "type": "jms", - "description": "JMS stream message", - "bindingVersion": "0.1.0" + "bindingVersion": { + "description": "The version of this binding.", + "type": "string", + "enum": [ + "0.1.0" + ] + }, + "expiry": { + "description": "The recommended setting the client should use for the TTL (Time-To-Live) of the message. This is a period of time expressed in milliseconds and set by the application that puts the message. 'expiry' values are API dependant e.g., MQI and JMS use different units of time and default values for 'unlimited'. General information on IBM MQ message expiry can be found on this [page](https://www.ibm.com/docs/en/ibm-mq/9.2?topic=mqmd-expiry-mqlong) in the IBM MQ Knowledge Center.", + "default": 0, + "type": "integer", + "minimum": 0 + }, + "headers": { + "description": "Defines the IBM MQ message headers to include with this message. More than one header can be specified as a comma separated list. Supporting information on IBM MQ message formats can be found on this [page](https://www.ibm.com/docs/en/ibm-mq/9.2?topic=mqmd-format-mqchar8) in the IBM MQ Knowledge Center.", + "type": "string" + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - ] + }, + "additionalProperties": false } diff --git a/bindings/ibmmq/0.1.0/server.json b/bindings/ibmmq/0.1.0/server.json index 20533493..b475bc7d 100644 --- a/bindings/ibmmq/0.1.0/server.json +++ b/bindings/ibmmq/0.1.0/server.json @@ -3,56 +3,56 @@ "$id": "http://asyncapi.com/bindings/ibmmq/0.1.0/server.json", "title": "IBM MQ server bindings object", "description": "This object contains server connection information about the IBM MQ server, referred to as an IBM MQ queue manager. This object contains additional connectivity information not possible to represent within the core AsyncAPI specification.", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + "examples": [ + { + "bindingVersion": "0.1.0", + "cipherSpec": "ANY_TLS12_OR_HIGHER", + "groupId": "PRODCLSTR1" + }, + { + "bindingVersion": "0.1.0", + "groupId": "PRODCLSTR1" } - }, + ], + "type": "object", "properties": { - "groupId": { + "bindingVersion": { + "description": "The version of this binding.", "type": "string", - "description": "Defines a logical group of IBM MQ server objects. This is necessary to specify multi-endpoint configurations used in high availability deployments. If omitted, the server object is not part of a group." + "enum": [ + "0.1.0" + ] }, "ccdtQueueManagerName": { - "type": "string", + "description": "The name of the IBM MQ queue manager to bind to in the CCDT file.", "default": "*", - "description": "The name of the IBM MQ queue manager to bind to in the CCDT file." + "type": "string" }, "cipherSpec": { - "type": "string", - "description": "The recommended cipher specification used to establish a TLS connection between the client and the IBM MQ queue manager. More information on SSL/TLS cipher specifications supported by IBM MQ can be found on this page in the IBM MQ Knowledge Center." + "description": "The recommended cipher specification used to establish a TLS connection between the client and the IBM MQ queue manager. More information on SSL/TLS cipher specifications supported by IBM MQ can be found on this page in the IBM MQ Knowledge Center.", + "type": "string" }, - "multiEndpointServer": { - "type": "boolean", - "default": false, - "description": "If 'multiEndpointServer' is 'true' then multiple connections can be workload balanced and applications should not make assumptions as to where messages are processed. Where message ordering, or affinity to specific message resources is necessary, a single endpoint ('multiEndpointServer' = 'false') may be required." + "groupId": { + "description": "Defines a logical group of IBM MQ server objects. This is necessary to specify multi-endpoint configurations used in high availability deployments. If omitted, the server object is not part of a group.", + "type": "string" }, "heartBeatInterval": { + "description": "The recommended value (in seconds) for the heartbeat sent to the queue manager during periods of inactivity. A value of zero means that no heart beats are sent. A value of 1 means that the client will use the value defined by the queue manager. More information on heart beat interval can be found on this page in the IBM MQ Knowledge Center.", + "default": 300, "type": "integer", - "minimum": 0, "maximum": 999999, - "default": 300, - "description": "The recommended value (in seconds) for the heartbeat sent to the queue manager during periods of inactivity. A value of zero means that no heart beats are sent. A value of 1 means that the client will use the value defined by the queue manager. More information on heart beat interval can be found on this page in the IBM MQ Knowledge Center." + "minimum": 0 }, - "bindingVersion": { - "type": "string", - "enum": [ - "0.1.0" - ], - "description": "The version of this binding." + "multiEndpointServer": { + "description": "If 'multiEndpointServer' is 'true' then multiple connections can be workload balanced and applications should not make assumptions as to where messages are processed. Where message ordering, or affinity to specific message resources is necessary, a single endpoint ('multiEndpointServer' = 'false') may be required.", + "default": false, + "type": "boolean" } }, - "examples": [ - { - "groupId": "PRODCLSTR1", - "cipherSpec": "ANY_TLS12_OR_HIGHER", - "bindingVersion": "0.1.0" - }, - { - "groupId": "PRODCLSTR1", - "bindingVersion": "0.1.0" + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - ] + }, + "additionalProperties": false } diff --git a/bindings/jms/0.0.1/channel.json b/bindings/jms/0.0.1/channel.json index 6e6bde39..7566a536 100644 --- a/bindings/jms/0.0.1/channel.json +++ b/bindings/jms/0.0.1/channel.json @@ -3,38 +3,40 @@ "$id": "http://asyncapi.com/bindings/jms/0.0.1/channel.json", "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": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + "examples": [ + { + "bindingVersion": "0.0.1", + "destination": "user-signed-up", + "destinationType": "fifo-queue" } - }, + ], + "type": "object", "properties": { - "destination": { + "bindingVersion": { + "description": "The version of this binding. If omitted, 'latest' MUST be assumed.", "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." + "enum": [ + "0.0.1" + ] + }, + "destination": { + "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.", + "type": "string" }, "destinationType": { - "type": "string", - "enum": ["queue", "fifo-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.", "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." + "queue", + "fifo-queue" + ] } - }, - "examples": [ - { - "destination": "user-signed-up", - "destinationType": "fifo-queue", - "bindingVersion": "0.0.1" + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - ] + }, + "additionalProperties": false } diff --git a/bindings/jms/0.0.1/message.json b/bindings/jms/0.0.1/message.json index daad663f..80531bb4 100644 --- a/bindings/jms/0.0.1/message.json +++ b/bindings/jms/0.0.1/message.json @@ -3,71 +3,84 @@ "$id": "http://asyncapi.com/bindings/jms/0.0.1/message.json", "title": "Message Schema", "description": "This object contains configuration for describing a JMS message as an AsyncAPI message. This objects only contains configuration that can not be provided in the AsyncAPI standard message object.", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" - } - }, - "properties": { - "headers": { - "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json", - "description": "A Schema object containing the definitions for JMS headers (protocol headers). This schema MUST be of type 'object' and have a 'properties' key. Examples of JMS protocol headers are 'JMSMessageID', 'JMSTimestamp', and 'JMSCorrelationID'." - }, - "bindingVersion": { - "type": "string", - "enum": [ - "0.0.1" - ], - "description": "The version of this binding. If omitted, 'latest' MUST be assumed." - } - - }, "examples": [ { + "bindingVersion": "0.0.1", "headers": { "type": "object", - "required": ["JMSMessageID"], + "required": [ + "JMSMessageID" + ], "properties": { - "JMSMessageID": { - "type": ["string", "null"], - "description": "A unique message identifier. This may be set by your JMS Provider on your behalf." - }, - "JMSTimestamp": { - "type": "integer", - "description": "The time the message was sent. This may be set by your JMS Provider on your behalf. The time the message was sent. The value of the timestamp is the amount of time, measured in milliseconds, that has elapsed since midnight, January 1, 1970, UTC." + "JMSCorrelationID": { + "description": "The correlation identifier of the message. A client can use the 'JMSCorrelationID' header field to link one message with another. A typical use is to link a response message with its request message. Since each message sent by a JMS provider is assigned a message ID value, it is convenient to link messages via message ID, such message ID values must start with the 'ID:' prefix. Conversely, application-specified values must not start with the 'ID:' prefix; this is reserved for provider-generated message ID values.", + "type": [ + "string", + "null" + ] }, "JMSDeliveryMode": { - "type": "string", - "enum": ["PERSISTENT", "NON_PERSISTENT"], + "description": "Denotes the delivery mode for the message. This may be set by your JMS Provider on your behalf.", "default": "PERSISTENT", - "description": "Denotes the delivery mode for the message. This may be set by your JMS Provider on your behalf." - }, - "JMSPriority": { - "type": "integer", - "default": 4, - "description": "The priority of the message. This may be set by your JMS Provider on your behalf." + "type": "string", + "enum": [ + "PERSISTENT", + "NON_PERSISTENT" + ] }, "JMSExpires": { - "type": "integer", - "description": "The time at which the message expires. This may be set by your JMS Provider on your behalf. A value of zero means that the message does not expire. Any non-zero value is the amount of time, measured in milliseconds, that has elapsed since midnight, January 1, 1970, UTC, at which the message will expire." + "description": "The time at which the message expires. This may be set by your JMS Provider on your behalf. A value of zero means that the message does not expire. Any non-zero value is the amount of time, measured in milliseconds, that has elapsed since midnight, January 1, 1970, UTC, at which the message will expire.", + "type": "integer" }, - "JMSType": { - "type": ["string", "null"], - "description": "The type of message. Some JMS providers use a message repository that contains the definitions of messages sent by applications. The 'JMSType' header field may reference a message's definition in the provider's repository. The JMS API does not define a standard message definition repository, nor does it define a naming policy for the definitions it contains. Some messaging systems require that a message type definition for each application message be created and that each message specify its type. In order to work with such JMS providers, JMS clients should assign a value to 'JMSType', whether the application makes use of it or not. This ensures that the field is properly set for those providers that require it." + "JMSMessageID": { + "description": "A unique message identifier. This may be set by your JMS Provider on your behalf.", + "type": [ + "string", + "null" + ] }, - "JMSCorrelationID": { - "type": ["string", "null"], - "description": "The correlation identifier of the message. A client can use the 'JMSCorrelationID' header field to link one message with another. A typical use is to link a response message with its request message. Since each message sent by a JMS provider is assigned a message ID value, it is convenient to link messages via message ID, such message ID values must start with the 'ID:' prefix. Conversely, application-specified values must not start with the 'ID:' prefix; this is reserved for provider-generated message ID values." + "JMSPriority": { + "description": "The priority of the message. This may be set by your JMS Provider on your behalf.", + "default": 4, + "type": "integer" }, "JMSReplyTo": { - "type": "string", - "description": "The queue or topic that the message sender expects replies to." + "description": "The queue or topic that the message sender expects replies to.", + "type": "string" + }, + "JMSTimestamp": { + "description": "The time the message was sent. This may be set by your JMS Provider on your behalf. The time the message was sent. The value of the timestamp is the amount of time, measured in milliseconds, that has elapsed since midnight, January 1, 1970, UTC.", + "type": "integer" + }, + "JMSType": { + "description": "The type of message. Some JMS providers use a message repository that contains the definitions of messages sent by applications. The 'JMSType' header field may reference a message's definition in the provider's repository. The JMS API does not define a standard message definition repository, nor does it define a naming policy for the definitions it contains. Some messaging systems require that a message type definition for each application message be created and that each message specify its type. In order to work with such JMS providers, JMS clients should assign a value to 'JMSType', whether the application makes use of it or not. This ensures that the field is properly set for those providers that require it.", + "type": [ + "string", + "null" + ] } } - }, - "bindingVersion": "0.0.1" + } + } + ], + "type": "object", + "properties": { + "bindingVersion": { + "description": "The version of this binding. If omitted, 'latest' MUST be assumed.", + "type": "string", + "enum": [ + "0.0.1" + ] + }, + "headers": { + "description": "A Schema object containing the definitions for JMS headers (protocol headers). This schema MUST be of type 'object' and have a 'properties' key. Examples of JMS protocol headers are 'JMSMessageID', 'JMSTimestamp', and 'JMSCorrelationID'.", + "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" } - ] + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + } + }, + "additionalProperties": false } diff --git a/bindings/jms/0.0.1/server.json b/bindings/jms/0.0.1/server.json index 2137b913..a1a57e51 100644 --- a/bindings/jms/0.0.1/server.json +++ b/bindings/jms/0.0.1/server.json @@ -1,69 +1,77 @@ { - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/bindings/jms/0.0.1/server.json", - "title": "Server Schema", - "description": "This object contains configuration for describing a JMS broker as an AsyncAPI server. This objects only contains configuration that can not be provided in the AsyncAPI standard server object.", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/bindings/jms/0.0.1/server.json", + "title": "Server Schema", + "description": "This object contains configuration for describing a JMS broker as an AsyncAPI server. This objects only contains configuration that can not be provided in the AsyncAPI standard server object.", + "examples": [ + { + "properties": [ + { + "name": "disableTimeStampsByDefault", + "value": false + } + ], + "bindingVersion": "0.0.1", + "clientID": "my-application-1", + "jmsConnectionFactory": "org.apache.activemq.ActiveMQConnectionFactory" + } + ], + "type": "object", + "required": [ + "jmsConnectionFactory" + ], + "properties": { + "properties": { + "description": "Additional properties to set on the JMS ConnectionFactory implementation for the JMS Provider.", + "type": "array", + "items": { + "$ref": "http://asyncapi.com/bindings/jms/0.0.1/server.json#/definitions/property" } }, - "required": ["jmsConnectionFactory"], - "properties": { - "jmsConnectionFactory": { - "type": "string", - "description": "The classname of the ConnectionFactory implementation for the JMS Provider." - }, + "bindingVersion": { + "description": "The version of this binding. If omitted, 'latest' MUST be assumed.", + "type": "string", + "enum": [ + "0.0.1" + ] + }, + "clientID": { + "description": "A client identifier for applications that use this JMS connection factory. If the Client ID Policy is set to 'Restricted' (the default), then configuring a Client ID on the ConnectionFactory prevents more than one JMS client from using a connection from this factory.", + "type": "string" + }, + "jmsConnectionFactory": { + "description": "The classname of the ConnectionFactory implementation for the JMS Provider.", + "type": "string" + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + } + }, + "additionalProperties": false, + "definitions": { + "property": { + "type": "object", + "required": [ + "name", + "value" + ], "properties": { - "type": "array", - "items": { - "$ref": "http://asyncapi.com/bindings/jms/0.0.1/server.json#/definitions/property" + "name": { + "description": "The name of a property", + "type": "string" }, - "description": "Additional properties to set on the JMS ConnectionFactory implementation for the JMS Provider." - }, - "clientID": { - "type": "string", - "description": "A client identifier for applications that use this JMS connection factory. If the Client ID Policy is set to 'Restricted' (the default), then configuring a Client ID on the ConnectionFactory prevents more than one JMS client from using a connection from this factory." - }, - "bindingVersion": { - "type": "string", - "enum": [ - "0.0.1" - ], - "description": "The version of this binding. If omitted, 'latest' MUST be assumed." - } - - }, - "definitions": { - "property": { - "type": "object", - "required": ["name", "value"], - "properties": { - "name": { - "type": "string", - "description": "The name of a property" - }, - "value": { - "type": ["string", "boolean", "number", "null"], - "description": "The name of a property" - } + "value": { + "description": "The name of a property", + "type": [ + "string", + "boolean", + "number", + "null" + ] } } - }, - "examples": [ - { - "jmsConnectionFactory": "org.apache.activemq.ActiveMQConnectionFactory", - "properties": [ - { - "name": "disableTimeStampsByDefault", - "value": false - } - ], - "clientID": "my-application-1", - "bindingVersion": "0.0.1" - } - ] + } } - \ No newline at end of file +} diff --git a/bindings/kafka/0.1.0/message.json b/bindings/kafka/0.1.0/message.json index 85c3b946..800bc25a 100644 --- a/bindings/kafka/0.1.0/message.json +++ b/bindings/kafka/0.1.0/message.json @@ -2,41 +2,41 @@ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "http://asyncapi.com/bindings/kafka/0.1.0/message.json", "title": "Kafka message bindings object", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" - } - }, - "properties": { - "key": { - "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json", - "description": "The message key." - }, - "bindingVersion": { - "type": "string", - "enum": [ - "0.1.0" - ], - "description": "The version of this binding. If omitted, 'latest' MUST be assumed." - } - }, "examples": [ { + "bindingVersion": "0.1.0", "key": { "type": "string", "enum": [ "myKey" ] - }, - "bindingVersion": "0.1.0" + } }, { + "bindingVersion": "0.2.0", "key": { "$ref": "path/to/user-create.avsc#/UserCreate" - }, - "bindingVersion": "0.2.0" + } } - ] + ], + "type": "object", + "properties": { + "bindingVersion": { + "description": "The version of this binding. If omitted, 'latest' MUST be assumed.", + "type": "string", + "enum": [ + "0.1.0" + ] + }, + "key": { + "description": "The message key.", + "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + } + }, + "additionalProperties": false } diff --git a/bindings/kafka/0.1.0/operation.json b/bindings/kafka/0.1.0/operation.json index e37748ef..3b03fccb 100644 --- a/bindings/kafka/0.1.0/operation.json +++ b/bindings/kafka/0.1.0/operation.json @@ -3,46 +3,45 @@ "$id": "http://asyncapi.com/bindings/kafka/0.1.0/operation.json", "title": "Kafka operation message bindings object", "description": "This object contains information about the operation representation in Kafka.", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" - } - }, - "properties": { - "groupId": { - "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json", - "description": "Id of the consumer group." - }, - "clientId": { - "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json", - "description": "Id of the consumer inside a consumer group." - }, - "bindingVersion": { - "type": "string", - "enum": [ - "0.1.0" - ], - "description": "The version of this binding. If omitted, 'latest' MUST be assumed." - } - - }, "examples": [ { - "groupId": { + "bindingVersion": "0.1.0", + "clientId": { "type": "string", "enum": [ - "myGroupId" + "myClientId" ] }, - "clientId": { + "groupId": { "type": "string", "enum": [ - "myClientId" + "myGroupId" ] - }, - "bindingVersion": "0.1.0" + } } - ] + ], + "type": "object", + "properties": { + "bindingVersion": { + "description": "The version of this binding. If omitted, 'latest' MUST be assumed.", + "type": "string", + "enum": [ + "0.1.0" + ] + }, + "clientId": { + "description": "Id of the consumer inside a consumer group.", + "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" + }, + "groupId": { + "description": "Id of the consumer group.", + "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + } + }, + "additionalProperties": false } diff --git a/bindings/kafka/0.3.0/channel.json b/bindings/kafka/0.3.0/channel.json index 91946b2a..9baa63d9 100644 --- a/bindings/kafka/0.3.0/channel.json +++ b/bindings/kafka/0.3.0/channel.json @@ -1,46 +1,44 @@ { - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/bindings/kafka/0.3.0/channel.json", - "title": "Channel Schema", - "description": "This object contains information about the channel representation in Kafka.", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" - } + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/bindings/kafka/0.3.0/channel.json", + "title": "Channel Schema", + "description": "This object contains information about the channel representation in Kafka.", + "examples": [ + { + "bindingVersion": "0.3.0", + "partitions": 20, + "replicas": 3, + "topic": "my-specific-topic" + } + ], + "type": "object", + "properties": { + "bindingVersion": { + "description": "The version of this binding. If omitted, 'latest' MUST be assumed.", + "type": "string", + "enum": [ + "0.3.0" + ] }, - "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." - } - + "partitions": { + "description": "Number of partitions configured on this topic.", + "type": "integer", + "minimum": 1 }, - "examples": [ - { - "topic": "my-specific-topic", - "partitions": 20, - "replicas": 3, - "bindingVersion": "0.3.0" - } - ] - } - \ No newline at end of file + "replicas": { + "description": "Number of replicas configured on this topic.", + "type": "integer", + "minimum": 1 + }, + "topic": { + "description": "Kafka topic name if different from channel name.", + "type": "string" + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/bindings/kafka/0.3.0/message.json b/bindings/kafka/0.3.0/message.json index 8d94ac9c..d31be35b 100644 --- a/bindings/kafka/0.3.0/message.json +++ b/bindings/kafka/0.3.0/message.json @@ -2,42 +2,9 @@ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "http://asyncapi.com/bindings/kafka/0.3.0/message.json", "title": "Message Schema", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" - } - }, - "properties": { - "key": { - "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json", - "description": "The message key." - }, - "schemaIdLocation": { - "type": "string", - "description": "If a Schema Registry is used when performing this operation, tells where the id of schema is stored.", - "enum": ["header", "payload"] - }, - "schemaIdPayloadEncoding": { - "type": "string", - "description": "Number of bytes or vendor specific values when schema id is encoded in payload." - }, - "schemaLookupStrategy": { - "type": "string", - "description": "Freeform string for any naming strategy class to use. Clients should default to the vendor default if not supplied." - }, - "bindingVersion": { - "type": "string", - "enum": [ - "0.3.0" - ], - "description": "The version of this binding. If omitted, 'latest' MUST be assumed." - } - - }, "examples": [ { + "bindingVersion": "0.3.0", "key": { "type": "string", "enum": [ @@ -46,16 +13,51 @@ }, "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", - "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.3.0" + "schemaLookupStrategy": "TopicIdStrategy" }, { + "bindingVersion": "0.3.0", "key": { "$ref": "path/to/user-create.avsc#/UserCreate" }, "schemaIdLocation": "payload", - "schemaIdPayloadEncoding": "4", - "bindingVersion": "0.3.0" + "schemaIdPayloadEncoding": "4" } - ] + ], + "type": "object", + "properties": { + "bindingVersion": { + "description": "The version of this binding. If omitted, 'latest' MUST be assumed.", + "type": "string", + "enum": [ + "0.3.0" + ] + }, + "key": { + "description": "The message key.", + "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" + }, + "schemaIdLocation": { + "description": "If a Schema Registry is used when performing this operation, tells where the id of schema is stored.", + "type": "string", + "enum": [ + "header", + "payload" + ] + }, + "schemaIdPayloadEncoding": { + "description": "Number of bytes or vendor specific values when schema id is encoded in payload.", + "type": "string" + }, + "schemaLookupStrategy": { + "description": "Freeform string for any naming strategy class to use. Clients should default to the vendor default if not supplied.", + "type": "string" + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + } + }, + "additionalProperties": false } diff --git a/bindings/kafka/0.3.0/operation.json b/bindings/kafka/0.3.0/operation.json index f7e30e29..8e227664 100644 --- a/bindings/kafka/0.3.0/operation.json +++ b/bindings/kafka/0.3.0/operation.json @@ -3,46 +3,45 @@ "$id": "http://asyncapi.com/bindings/kafka/0.3.0/operation.json", "title": "Operation Schema", "description": "This object contains information about the operation representation in Kafka.", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" - } - }, - "properties": { - "groupId": { - "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json", - "description": "Id of the consumer group." - }, - "clientId": { - "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json", - "description": "Id of the consumer inside a consumer group." - }, - "bindingVersion": { - "type": "string", - "enum": [ - "0.3.0" - ], - "description": "The version of this binding. If omitted, 'latest' MUST be assumed." - } - - }, "examples": [ { - "groupId": { + "bindingVersion": "0.3.0", + "clientId": { "type": "string", "enum": [ - "myGroupId" + "myClientId" ] }, - "clientId": { + "groupId": { "type": "string", "enum": [ - "myClientId" + "myGroupId" ] - }, - "bindingVersion": "0.3.0" + } } - ] + ], + "type": "object", + "properties": { + "bindingVersion": { + "description": "The version of this binding. If omitted, 'latest' MUST be assumed.", + "type": "string", + "enum": [ + "0.3.0" + ] + }, + "clientId": { + "description": "Id of the consumer inside a consumer group.", + "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" + }, + "groupId": { + "description": "Id of the consumer group.", + "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + } + }, + "additionalProperties": false } diff --git a/bindings/kafka/0.3.0/server.json b/bindings/kafka/0.3.0/server.json index 4f8b3c7a..ad49d8aa 100644 --- a/bindings/kafka/0.3.0/server.json +++ b/bindings/kafka/0.3.0/server.json @@ -1,38 +1,37 @@ { - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/bindings/kafka/0.3.0/server.json", - "title": "Server Schema", - "description": "This object contains server connection information to a Kafka broker. This object contains additional information not possible to represent within the core AsyncAPI specification.", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" - } + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/bindings/kafka/0.3.0/server.json", + "title": "Server Schema", + "description": "This object contains server connection information to a Kafka broker. This object contains additional information not possible to represent within the core AsyncAPI specification.", + "examples": [ + { + "bindingVersion": "0.3.0", + "schemaRegistryUrl": "https://my-schema-registry.com", + "schemaRegistryVendor": "confluent" + } + ], + "type": "object", + "properties": { + "bindingVersion": { + "description": "The version of this binding.", + "type": "string", + "enum": [ + "0.3.0" + ] }, - "properties": { - "schemaRegistryUrl": { - "type": "string", - "description": "API URL for the Schema Registry used when producing Kafka messages (if a Schema Registry was used)." - }, - "schemaRegistryVendor": { - "type": "string", - "description": "The vendor of the Schema Registry and Kafka serdes library that should be used." - }, - "bindingVersion": { - "type": "string", - "enum": [ - "0.3.0" - ], - "description": "The version of this binding." - } + "schemaRegistryUrl": { + "description": "API URL for the Schema Registry used when producing Kafka messages (if a Schema Registry was used).", + "type": "string" }, - "examples": [ - { - "schemaRegistryUrl": "https://my-schema-registry.com", - "schemaRegistryVendor": "confluent", - "bindingVersion": "0.3.0" - } - ] - } - \ No newline at end of file + "schemaRegistryVendor": { + "description": "The vendor of the Schema Registry and Kafka serdes library that should be used.", + "type": "string" + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/bindings/kafka/0.4.0/channel.json b/bindings/kafka/0.4.0/channel.json index 67edf414..a2479903 100644 --- a/bindings/kafka/0.4.0/channel.json +++ b/bindings/kafka/0.4.0/channel.json @@ -3,51 +3,52 @@ "$id": "http://asyncapi.com/bindings/kafka/0.4.0/channel.json", "title": "Channel Schema", "description": "This object contains information about the channel representation in Kafka.", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + "examples": [ + { + "bindingVersion": "0.4.0", + "partitions": 20, + "replicas": 3, + "topic": "my-specific-topic" } - }, + ], + "type": "object", "properties": { - "topic": { + "bindingVersion": { + "description": "The version of this binding. If omitted, 'latest' MUST be assumed.", "type": "string", - "description": "Kafka topic name if different from channel name." + "enum": [ + "0.4.0" + ] }, "partitions": { + "description": "Number of partitions configured on this topic.", "type": "integer", - "minimum": 1, - "description": "Number of partitions configured on this topic." + "minimum": 1 }, "replicas": { + "description": "Number of replicas configured on this topic.", "type": "integer", - "minimum": 1, - "description": "Number of replicas configured on this topic." + "minimum": 1 + }, + "topic": { + "description": "Kafka topic name if different from channel name.", + "type": "string" }, - "topicConfiguration" : { + "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":{ + "items": { "type": "string", - "enum": ["compact", "delete"] + "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", @@ -57,24 +58,25 @@ "description": "The [`max.message.bytes`](https://kafka.apache.org/documentation/#topicconfigs_max.message.bytes) configuration option.", "type": "integer", "minimum": 0 + }, + "retention.bytes": { + "description": "The [`retention.bytes`](https://kafka.apache.org/documentation/#topicconfigs_retention.bytes) configuration option.", + "type": "integer", + "minimum": -1 + }, + "retention.ms": { + "description": "The [`retention.ms`](https://kafka.apache.org/documentation/#topicconfigs_retention.ms) configuration option.", + "type": "integer", + "minimum": -1 } - } - }, - "bindingVersion": { - "type": "string", - "enum": [ - "0.4.0" - ], - "description": "The version of this binding. If omitted, 'latest' MUST be assumed." + }, + "additionalProperties": false } - }, - "examples": [ - { - "topic": "my-specific-topic", - "partitions": 20, - "replicas": 3, - "bindingVersion": "0.4.0" + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - ] + }, + "additionalProperties": false } diff --git a/bindings/kafka/0.4.0/message.json b/bindings/kafka/0.4.0/message.json index 173a9bad..c936adde 100644 --- a/bindings/kafka/0.4.0/message.json +++ b/bindings/kafka/0.4.0/message.json @@ -2,15 +2,39 @@ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "http://asyncapi.com/bindings/kafka/0.4.0/message.json", "title": "Message Schema", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + "examples": [ + { + "bindingVersion": "0.4.0", + "key": { + "type": "string", + "enum": [ + "myKey" + ] + }, + "schemaIdLocation": "payload", + "schemaIdPayloadEncoding": "apicurio-new", + "schemaLookupStrategy": "TopicIdStrategy" + }, + { + "bindingVersion": "0.4.0", + "key": { + "$ref": "path/to/user-create.avsc#/UserCreate" + }, + "schemaIdLocation": "payload", + "schemaIdPayloadEncoding": "4" } - }, + ], + "type": "object", "properties": { + "bindingVersion": { + "description": "The version of this binding. If omitted, 'latest' MUST be assumed.", + "type": "string", + "enum": [ + "0.4.0" + ] + }, "key": { + "description": "The message key.", "anyOf": [ { "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" @@ -21,51 +45,29 @@ { "$ref": "http://asyncapi.com/definitions/3.0.0/avroSchema_v1.json" } - ], - "description": "The message key." + ] }, "schemaIdLocation": { - "type": "string", "description": "If a Schema Registry is used when performing this operation, tells where the id of schema is stored.", - "enum": ["header", "payload"] + "type": "string", + "enum": [ + "header", + "payload" + ] }, "schemaIdPayloadEncoding": { - "type": "string", - "description": "Number of bytes or vendor specific values when schema id is encoded in payload." + "description": "Number of bytes or vendor specific values when schema id is encoded in payload.", + "type": "string" }, "schemaLookupStrategy": { - "type": "string", - "description": "Freeform string for any naming strategy class to use. Clients should default to the vendor default if not supplied." - }, - "bindingVersion": { - "type": "string", - "enum": [ - "0.4.0" - ], - "description": "The version of this binding. If omitted, 'latest' MUST be assumed." + "description": "Freeform string for any naming strategy class to use. Clients should default to the vendor default if not supplied.", + "type": "string" } - }, - "examples": [ - { - "key": { - "type": "string", - "enum": [ - "myKey" - ] - }, - "schemaIdLocation": "payload", - "schemaIdPayloadEncoding": "apicurio-new", - "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" - }, - { - "key": { - "$ref": "path/to/user-create.avsc#/UserCreate" - }, - "schemaIdLocation": "payload", - "schemaIdPayloadEncoding": "4", - "bindingVersion": "0.4.0" + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - ] + }, + "additionalProperties": false } diff --git a/bindings/kafka/0.4.0/operation.json b/bindings/kafka/0.4.0/operation.json index 2ba93aff..fc60a4ea 100644 --- a/bindings/kafka/0.4.0/operation.json +++ b/bindings/kafka/0.4.0/operation.json @@ -3,45 +3,45 @@ "$id": "http://asyncapi.com/bindings/kafka/0.4.0/operation.json", "title": "Operation Schema", "description": "This object contains information about the operation representation in Kafka.", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" - } - }, - "properties": { - "groupId": { - "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json", - "description": "Id of the consumer group." - }, - "clientId": { - "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json", - "description": "Id of the consumer inside a consumer group." - }, - "bindingVersion": { - "type": "string", - "enum": [ - "0.4.0" - ], - "description": "The version of this binding. If omitted, 'latest' MUST be assumed." - } - }, "examples": [ { - "groupId": { + "bindingVersion": "0.4.0", + "clientId": { "type": "string", "enum": [ - "myGroupId" + "myClientId" ] }, - "clientId": { + "groupId": { "type": "string", "enum": [ - "myClientId" + "myGroupId" ] - }, - "bindingVersion": "0.4.0" + } } - ] + ], + "type": "object", + "properties": { + "bindingVersion": { + "description": "The version of this binding. If omitted, 'latest' MUST be assumed.", + "type": "string", + "enum": [ + "0.4.0" + ] + }, + "clientId": { + "description": "Id of the consumer inside a consumer group.", + "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" + }, + "groupId": { + "description": "Id of the consumer group.", + "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + } + }, + "additionalProperties": false } diff --git a/bindings/kafka/0.4.0/server.json b/bindings/kafka/0.4.0/server.json index 8d8d3a78..be160d7a 100644 --- a/bindings/kafka/0.4.0/server.json +++ b/bindings/kafka/0.4.0/server.json @@ -3,35 +3,35 @@ "$id": "http://asyncapi.com/bindings/kafka/0.4.0/server.json", "title": "Server Schema", "description": "This object contains server connection information to a Kafka broker. This object contains additional information not possible to represent within the core AsyncAPI specification.", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + "examples": [ + { + "bindingVersion": "0.4.0", + "schemaRegistryUrl": "https://my-schema-registry.com", + "schemaRegistryVendor": "confluent" } - }, + ], + "type": "object", "properties": { - "schemaRegistryUrl": { - "type": "string", - "description": "API URL for the Schema Registry used when producing Kafka messages (if a Schema Registry was used)." - }, - "schemaRegistryVendor": { - "type": "string", - "description": "The vendor of the Schema Registry and Kafka serdes library that should be used." - }, "bindingVersion": { + "description": "The version of this binding.", "type": "string", "enum": [ "0.4.0" - ], - "description": "The version of this binding." + ] + }, + "schemaRegistryUrl": { + "description": "API URL for the Schema Registry used when producing Kafka messages (if a Schema Registry was used).", + "type": "string" + }, + "schemaRegistryVendor": { + "description": "The vendor of the Schema Registry and Kafka serdes library that should be used.", + "type": "string" } }, - "examples": [ - { - "schemaRegistryUrl": "https://my-schema-registry.com", - "schemaRegistryVendor": "confluent", - "bindingVersion": "0.4.0" + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - ] -} \ No newline at end of file + }, + "additionalProperties": false +} diff --git a/bindings/kafka/0.5.0/channel.json b/bindings/kafka/0.5.0/channel.json index 497eab52..3ebbb933 100644 --- a/bindings/kafka/0.5.0/channel.json +++ b/bindings/kafka/0.5.0/channel.json @@ -3,61 +3,52 @@ "$id": "http://asyncapi.com/bindings/kafka/0.5.0/channel.json", "title": "Channel Schema", "description": "This object contains information about the channel representation in Kafka.", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + "examples": [ + { + "bindingVersion": "0.5.0", + "partitions": 20, + "replicas": 3, + "topic": "my-specific-topic" } - }, + ], + "type": "object", "properties": { - "topic": { + "bindingVersion": { + "description": "The version of this binding. If omitted, 'latest' MUST be assumed.", "type": "string", - "description": "Kafka topic name if different from channel name." + "enum": [ + "0.5.0" + ] }, "partitions": { + "description": "Number of partitions configured on this topic.", "type": "integer", - "minimum": 1, - "description": "Number of partitions configured on this topic." + "minimum": 1 }, "replicas": { + "description": "Number of replicas configured on this topic.", "type": "integer", - "minimum": 1, - "description": "Number of replicas configured on this topic." + "minimum": 1 + }, + "topic": { + "description": "Kafka topic name if different from channel name.", + "type": "string" }, - "topicConfiguration" : { + "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":{ + "items": { "type": "string", - "enum": ["compact", "delete"] + "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" @@ -73,24 +64,35 @@ "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" + }, + "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 + }, + "retention.bytes": { + "description": "The [`retention.bytes`](https://kafka.apache.org/documentation/#topicconfigs_retention.bytes) configuration option.", + "type": "integer", + "minimum": -1 + }, + "retention.ms": { + "description": "The [`retention.ms`](https://kafka.apache.org/documentation/#topicconfigs_retention.ms) configuration option.", + "type": "integer", + "minimum": -1 } - } - }, - "bindingVersion": { - "type": "string", - "enum": [ - "0.5.0" - ], - "description": "The version of this binding. If omitted, 'latest' MUST be assumed." + }, + "additionalProperties": true } - }, - "examples": [ - { - "topic": "my-specific-topic", - "partitions": 20, - "replicas": 3, - "bindingVersion": "0.5.0" + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - ] + }, + "additionalProperties": false } diff --git a/bindings/kafka/0.5.0/message.json b/bindings/kafka/0.5.0/message.json index 82970db2..14983f60 100644 --- a/bindings/kafka/0.5.0/message.json +++ b/bindings/kafka/0.5.0/message.json @@ -2,15 +2,39 @@ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "http://asyncapi.com/bindings/kafka/0.5.0/message.json", "title": "Message Schema", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + "examples": [ + { + "bindingVersion": "0.5.0", + "key": { + "type": "string", + "enum": [ + "myKey" + ] + }, + "schemaIdLocation": "payload", + "schemaIdPayloadEncoding": "apicurio-new", + "schemaLookupStrategy": "TopicIdStrategy" + }, + { + "bindingVersion": "0.5.0", + "key": { + "$ref": "path/to/user-create.avsc#/UserCreate" + }, + "schemaIdLocation": "payload", + "schemaIdPayloadEncoding": "4" } - }, + ], + "type": "object", "properties": { + "bindingVersion": { + "description": "The version of this binding. If omitted, 'latest' MUST be assumed.", + "type": "string", + "enum": [ + "0.5.0" + ] + }, "key": { + "description": "The message key.", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" @@ -18,51 +42,29 @@ { "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" } - ], - "description": "The message key." + ] }, "schemaIdLocation": { - "type": "string", "description": "If a Schema Registry is used when performing this operation, tells where the id of schema is stored.", - "enum": ["header", "payload"] + "type": "string", + "enum": [ + "header", + "payload" + ] }, "schemaIdPayloadEncoding": { - "type": "string", - "description": "Number of bytes or vendor specific values when schema id is encoded in payload." + "description": "Number of bytes or vendor specific values when schema id is encoded in payload.", + "type": "string" }, "schemaLookupStrategy": { - "type": "string", - "description": "Freeform string for any naming strategy class to use. Clients should default to the vendor default if not supplied." - }, - "bindingVersion": { - "type": "string", - "enum": [ - "0.5.0" - ], - "description": "The version of this binding. If omitted, 'latest' MUST be assumed." + "description": "Freeform string for any naming strategy class to use. Clients should default to the vendor default if not supplied.", + "type": "string" } - }, - "examples": [ - { - "key": { - "type": "string", - "enum": [ - "myKey" - ] - }, - "schemaIdLocation": "payload", - "schemaIdPayloadEncoding": "apicurio-new", - "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.5.0" - }, - { - "key": { - "$ref": "path/to/user-create.avsc#/UserCreate" - }, - "schemaIdLocation": "payload", - "schemaIdPayloadEncoding": "4", - "bindingVersion": "0.5.0" + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - ] + }, + "additionalProperties": false } diff --git a/bindings/kafka/0.5.0/operation.json b/bindings/kafka/0.5.0/operation.json index d00ad975..7ae4a7e2 100644 --- a/bindings/kafka/0.5.0/operation.json +++ b/bindings/kafka/0.5.0/operation.json @@ -3,45 +3,45 @@ "$id": "http://asyncapi.com/bindings/kafka/0.5.0/operation.json", "title": "Operation Schema", "description": "This object contains information about the operation representation in Kafka.", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" - } - }, - "properties": { - "groupId": { - "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json", - "description": "Id of the consumer group." - }, - "clientId": { - "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json", - "description": "Id of the consumer inside a consumer group." - }, - "bindingVersion": { - "type": "string", - "enum": [ - "0.5.0" - ], - "description": "The version of this binding. If omitted, 'latest' MUST be assumed." - } - }, "examples": [ { - "groupId": { + "bindingVersion": "0.5.0", + "clientId": { "type": "string", "enum": [ - "myGroupId" + "myClientId" ] }, - "clientId": { + "groupId": { "type": "string", "enum": [ - "myClientId" + "myGroupId" ] - }, - "bindingVersion": "0.5.0" + } } - ] + ], + "type": "object", + "properties": { + "bindingVersion": { + "description": "The version of this binding. If omitted, 'latest' MUST be assumed.", + "type": "string", + "enum": [ + "0.5.0" + ] + }, + "clientId": { + "description": "Id of the consumer inside a consumer group.", + "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" + }, + "groupId": { + "description": "Id of the consumer group.", + "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + } + }, + "additionalProperties": false } diff --git a/bindings/kafka/0.5.0/server.json b/bindings/kafka/0.5.0/server.json index 964f53c6..e8ea4395 100644 --- a/bindings/kafka/0.5.0/server.json +++ b/bindings/kafka/0.5.0/server.json @@ -3,35 +3,35 @@ "$id": "http://asyncapi.com/bindings/kafka/0.5.0/server.json", "title": "Server Schema", "description": "This object contains server connection information to a Kafka broker. This object contains additional information not possible to represent within the core AsyncAPI specification.", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + "examples": [ + { + "bindingVersion": "0.5.0", + "schemaRegistryUrl": "https://my-schema-registry.com", + "schemaRegistryVendor": "confluent" } - }, + ], + "type": "object", "properties": { - "schemaRegistryUrl": { - "type": "string", - "description": "API URL for the Schema Registry used when producing Kafka messages (if a Schema Registry was used)." - }, - "schemaRegistryVendor": { - "type": "string", - "description": "The vendor of the Schema Registry and Kafka serdes library that should be used." - }, "bindingVersion": { + "description": "The version of this binding.", "type": "string", "enum": [ "0.5.0" - ], - "description": "The version of this binding." + ] + }, + "schemaRegistryUrl": { + "description": "API URL for the Schema Registry used when producing Kafka messages (if a Schema Registry was used).", + "type": "string" + }, + "schemaRegistryVendor": { + "description": "The vendor of the Schema Registry and Kafka serdes library that should be used.", + "type": "string" } }, - "examples": [ - { - "schemaRegistryUrl": "https://my-schema-registry.com", - "schemaRegistryVendor": "confluent", - "bindingVersion": "0.5.0" + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - ] -} \ No newline at end of file + }, + "additionalProperties": false +} diff --git a/bindings/mqtt/0.1.0/message.json b/bindings/mqtt/0.1.0/message.json index 6a36e454..907881c7 100644 --- a/bindings/mqtt/0.1.0/message.json +++ b/bindings/mqtt/0.1.0/message.json @@ -3,25 +3,25 @@ "$id": "http://asyncapi.com/bindings/mqtt/0.1.0/message.json", "title": "MQTT message bindings object", "description": "This object contains information about the message representation in MQTT.", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + "examples": [ + { + "bindingVersion": "0.1.0" } - }, + ], + "type": "object", "properties": { "bindingVersion": { + "description": "The version of this binding. If omitted, 'latest' MUST be assumed.", "type": "string", "enum": [ "0.1.0" - ], - "description": "The version of this binding. If omitted, 'latest' MUST be assumed." + ] } }, - "examples": [ - { - "bindingVersion": "0.1.0" + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - ] + }, + "additionalProperties": false } diff --git a/bindings/mqtt/0.1.0/operation.json b/bindings/mqtt/0.1.0/operation.json index 57f5f718..7d1efbea 100644 --- a/bindings/mqtt/0.1.0/operation.json +++ b/bindings/mqtt/0.1.0/operation.json @@ -3,35 +3,35 @@ "$id": "http://asyncapi.com/bindings/mqtt/0.1.0/operation.json", "title": "MQTT operation bindings object", "description": "This object contains information about the operation representation in MQTT.", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + "examples": [ + { + "bindingVersion": "0.1.0", + "qos": 2, + "retain": true } - }, + ], + "type": "object", "properties": { - "qos": { - "type": "integer", - "description": "Defines the Quality of Service (QoS) levels for the message flow between client and server. Its value MUST be either 0 (At most once delivery), 1 (At least once delivery), or 2 (Exactly once delivery)." - }, - "retain": { - "type": "boolean", - "description": "Whether the broker should retain the message or not." - }, "bindingVersion": { + "description": "The version of this binding. If omitted, 'latest' MUST be assumed.", "type": "string", "enum": [ "0.1.0" - ], - "description": "The version of this binding. If omitted, 'latest' MUST be assumed." + ] + }, + "qos": { + "description": "Defines the Quality of Service (QoS) levels for the message flow between client and server. Its value MUST be either 0 (At most once delivery), 1 (At least once delivery), or 2 (Exactly once delivery).", + "type": "integer" + }, + "retain": { + "description": "Whether the broker should retain the message or not.", + "type": "boolean" } }, - "examples": [ - { - "qos": 2, - "retain": true, - "bindingVersion": "0.1.0" + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - ] + }, + "additionalProperties": false } diff --git a/bindings/mqtt/0.1.0/server.json b/bindings/mqtt/0.1.0/server.json index 5190fed0..f19faba5 100644 --- a/bindings/mqtt/0.1.0/server.json +++ b/bindings/mqtt/0.1.0/server.json @@ -3,69 +3,73 @@ "$id": "http://asyncapi.com/bindings/mqtt/0.1.0/server.json", "title": "MQTT server bindings object", "description": "This object contains information about the server representation in MQTT.", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + "examples": [ + { + "bindingVersion": "0.1.0", + "cleanSession": true, + "clientId": "guest", + "keepAlive": 60, + "lastWill": { + "message": "Guest gone offline.", + "qos": 2, + "retain": false, + "topic": "/last-wills" + } } - }, + ], + "type": "object", "properties": { - "clientId": { + "bindingVersion": { + "description": "The version of this binding. If omitted, 'latest' MUST be assumed.", "type": "string", - "description": "The client identifier." + "enum": [ + "0.1.0" + ] }, "cleanSession": { - "type": "boolean", - "description": "Whether to create a persistent connection or not. When 'false', the connection will be persistent." + "description": "Whether to create a persistent connection or not. When 'false', the connection will be persistent.", + "type": "boolean" + }, + "clientId": { + "description": "The client identifier.", + "type": "string" + }, + "keepAlive": { + "description": "Interval in seconds of the longest period of time the broker and the client can endure without sending a message.", + "type": "integer" }, "lastWill": { - "type": "object", "description": "Last Will and Testament configuration.", + "type": "object", "properties": { - "topic": { - "type": "string", - "description": "The topic where the Last Will and Testament message will be sent." + "message": { + "description": "Last Will message.", + "type": "string" }, "qos": { + "description": "Defines how hard the broker/client will try to ensure that the Last Will and Testament message is received. Its value MUST be either 0, 1 or 2.", "type": "integer", - "enum": [0,1,2], - "description": "Defines how hard the broker/client will try to ensure that the Last Will and Testament message is received. Its value MUST be either 0, 1 or 2." - }, - "message": { - "type": "string", - "description": "Last Will message." + "enum": [ + 0, + 1, + 2 + ] }, "retain": { - "type": "boolean", - "description": "Whether the broker should retain the Last Will and Testament message or not." + "description": "Whether the broker should retain the Last Will and Testament message or not.", + "type": "boolean" + }, + "topic": { + "description": "The topic where the Last Will and Testament message will be sent.", + "type": "string" } } - }, - "keepAlive": { - "type": "integer", - "description": "Interval in seconds of the longest period of time the broker and the client can endure without sending a message." - }, - "bindingVersion": { - "type": "string", - "enum": [ - "0.1.0" - ], - "description": "The version of this binding. If omitted, 'latest' MUST be assumed." } }, - "examples": [ - { - "clientId": "guest", - "cleanSession": true, - "lastWill": { - "topic": "/last-wills", - "qos": 2, - "message": "Guest gone offline.", - "retain": false - }, - "keepAlive": 60, - "bindingVersion": "0.1.0" + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - ] + }, + "additionalProperties": false } diff --git a/bindings/mqtt/0.2.0/message.json b/bindings/mqtt/0.2.0/message.json index 2374d341..2fa109e0 100644 --- a/bindings/mqtt/0.2.0/message.json +++ b/bindings/mqtt/0.2.0/message.json @@ -3,21 +3,35 @@ "$id": "http://asyncapi.com/bindings/mqtt/0.2.0/message.json", "title": "MQTT message bindings object", "description": "This object contains information about the message representation in MQTT.", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + "examples": [ + { + "bindingVersion": "0.2.0" + }, + { + "bindingVersion": "0.2.0", + "contentType": "application/json", + "correlationData": { + "type": "string", + "format": "uuid" + }, + "responseTopic": "application/responses" } - }, + ], + "type": "object", "properties": { - "payloadFormatIndicator": { - "type": "integer", - "enum": [0, 1], - "description": "1 indicates that the payload is UTF-8 encoded character data. 0 indicates that the payload format is unspecified.", - "default": 0 + "bindingVersion": { + "description": "The version of this binding. If omitted, 'latest' MUST be assumed.", + "type": "string", + "enum": [ + "0.2.0" + ] + }, + "contentType": { + "description": "String describing the content type of the message payload. This should not conflict with the contentType field of the associated AsyncAPI Message object.", + "type": "string" }, "correlationData": { + "description": "Correlation Data is used by the sender of the request message to identify which request the response message is for when it is received.", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" @@ -25,14 +39,19 @@ { "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" } - ], - "description": "Correlation Data is used by the sender of the request message to identify which request the response message is for when it is received." + ] }, - "contentType": { - "type": "string", - "description": "String describing the content type of the message payload. This should not conflict with the contentType field of the associated AsyncAPI Message object." + "payloadFormatIndicator": { + "description": "1 indicates that the payload is UTF-8 encoded character data. 0 indicates that the payload format is unspecified.", + "default": 0, + "type": "integer", + "enum": [ + 0, + 1 + ] }, "responseTopic": { + "description": "The topic (channel URI) to be used for a response message.", "oneOf": [ { "type": "string", @@ -45,30 +64,13 @@ { "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" } - ], - "description": "The topic (channel URI) to be used for a response message." - }, - - "bindingVersion": { - "type": "string", - "enum": [ - "0.2.0" - ], - "description": "The version of this binding. If omitted, 'latest' MUST be assumed." + ] } }, - "examples": [ - { - "bindingVersion": "0.2.0" - }, - { - "contentType": "application/json", - "correlationData": { - "type": "string", - "format": "uuid" - }, - "responseTopic": "application/responses", - "bindingVersion": "0.2.0" + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - ] -} \ No newline at end of file + }, + "additionalProperties": false +} diff --git a/bindings/mqtt/0.2.0/operation.json b/bindings/mqtt/0.2.0/operation.json index 1e058dde..381046ba 100644 --- a/bindings/mqtt/0.2.0/operation.json +++ b/bindings/mqtt/0.2.0/operation.json @@ -3,29 +3,30 @@ "$id": "http://asyncapi.com/bindings/mqtt/0.2.0/operation.json", "title": "MQTT operation bindings object", "description": "This object contains information about the operation representation in MQTT.", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + "examples": [ + { + "bindingVersion": "0.2.0", + "messageExpiryInterval": 60, + "qos": 2, + "retain": true } - }, + ], + "type": "object", "properties": { - "qos": { - "type": "integer", - "enum": [0,1,2], - "description": "Defines the Quality of Service (QoS) levels for the message flow between client and server. Its value MUST be either 0 (At most once delivery), 1 (At least once delivery), or 2 (Exactly once delivery)." - }, - "retain": { - "type": "boolean", - "description": "Whether the broker should retain the message or not." + "bindingVersion": { + "description": "The version of this binding. If omitted, 'latest' MUST be assumed.", + "type": "string", + "enum": [ + "0.2.0" + ] }, "messageExpiryInterval": { + "description": "Lifetime of the message in seconds", "oneOf": [ { "type": "integer", - "minimum": 0, - "maximum": 4294967295 + "maximum": 4294967295, + "minimum": 0 }, { "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" @@ -33,23 +34,26 @@ { "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" } - ], - "description": "Lifetime of the message in seconds" + ] }, - "bindingVersion": { - "type": "string", + "qos": { + "description": "Defines the Quality of Service (QoS) levels for the message flow between client and server. Its value MUST be either 0 (At most once delivery), 1 (At least once delivery), or 2 (Exactly once delivery).", + "type": "integer", "enum": [ - "0.2.0" - ], - "description": "The version of this binding. If omitted, 'latest' MUST be assumed." + 0, + 1, + 2 + ] + }, + "retain": { + "description": "Whether the broker should retain the message or not.", + "type": "boolean" } }, - "examples": [ - { - "qos": 2, - "retain": true, - "messageExpiryInterval": 60, - "bindingVersion": "0.2.0" + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - ] -} \ No newline at end of file + }, + "additionalProperties": false +} diff --git a/bindings/mqtt/0.2.0/server.json b/bindings/mqtt/0.2.0/server.json index 47c93674..aacfabbf 100644 --- a/bindings/mqtt/0.2.0/server.json +++ b/bindings/mqtt/0.2.0/server.json @@ -3,55 +3,77 @@ "$id": "http://asyncapi.com/bindings/mqtt/0.2.0/server.json", "title": "Server Schema", "description": "This object contains information about the server representation in MQTT.", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + "examples": [ + { + "bindingVersion": "0.2.0", + "cleanSession": true, + "clientId": "guest", + "keepAlive": 60, + "lastWill": { + "message": "Guest gone offline.", + "qos": 2, + "retain": false, + "topic": "/last-wills" + }, + "maximumPacketSize": 1024, + "sessionExpiryInterval": 120 } - }, + ], + "type": "object", "properties": { - - "clientId": { + "bindingVersion": { + "description": "The version of this binding. If omitted, 'latest' MUST be assumed.", "type": "string", - "description": "The client identifier." + "enum": [ + "0.2.0" + ] }, "cleanSession": { - "type": "boolean", - "description": "Whether to create a persistent connection or not. When 'false', the connection will be persistent. This is called clean start in MQTTv5." + "description": "Whether to create a persistent connection or not. When 'false', the connection will be persistent. This is called clean start in MQTTv5.", + "type": "boolean" + }, + "clientId": { + "description": "The client identifier.", + "type": "string" + }, + "keepAlive": { + "description": "Interval in seconds of the longest period of time the broker and the client can endure without sending a message.", + "type": "integer" }, "lastWill": { - "type": "object", "description": "Last Will and Testament configuration.", + "type": "object", "properties": { - "topic": { - "type": "string", - "description": "The topic where the Last Will and Testament message will be sent." + "message": { + "description": "Last Will message.", + "type": "string" }, "qos": { + "description": "Defines how hard the broker/client will try to ensure that the Last Will and Testament message is received. Its value MUST be either 0, 1 or 2.", "type": "integer", - "enum": [0,1,2], - "description": "Defines how hard the broker/client will try to ensure that the Last Will and Testament message is received. Its value MUST be either 0, 1 or 2." - }, - "message": { - "type": "string", - "description": "Last Will message." + "enum": [ + 0, + 1, + 2 + ] }, "retain": { - "type": "boolean", - "description": "Whether the broker should retain the Last Will and Testament message or not." + "description": "Whether the broker should retain the Last Will and Testament message or not.", + "type": "boolean" + }, + "topic": { + "description": "The topic where the Last Will and Testament message will be sent.", + "type": "string" } } }, - "keepAlive": { - "type": "integer", - "description": "Interval in seconds of the longest period of time the broker and the client can endure without sending a message." - }, - "sessionExpiryInterval": { + "maximumPacketSize": { + "description": "Number of bytes or a Schema Object representing the Maximum Packet Size the Client is willing to accept.", "oneOf": [ { "type": "integer", - "minimum": 0 + "maximum": 4294967295, + "minimum": 1 }, { "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" @@ -59,15 +81,14 @@ { "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" } - ], - "description": "Interval time in seconds or a Schema Object containing the definition of the interval. The broker maintains a session for a disconnected client until this interval expires." + ] }, - "maximumPacketSize": { + "sessionExpiryInterval": { + "description": "Interval time in seconds or a Schema Object containing the definition of the interval. The broker maintains a session for a disconnected client until this interval expires.", "oneOf": [ { "type": "integer", - "minimum": 1, - "maximum": 4294967295 + "minimum": 0 }, { "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" @@ -75,31 +96,13 @@ { "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" } - ], - "description": "Number of bytes or a Schema Object representing the Maximum Packet Size the Client is willing to accept." - }, - "bindingVersion": { - "type": "string", - "enum": [ - "0.2.0" - ], - "description": "The version of this binding. If omitted, 'latest' MUST be assumed." + ] } }, - "examples": [ - { - "clientId": "guest", - "cleanSession": true, - "lastWill": { - "topic": "/last-wills", - "qos": 2, - "message": "Guest gone offline.", - "retain": false - }, - "keepAlive": 60, - "sessionExpiryInterval": 120, - "maximumPacketSize": 1024, - "bindingVersion": "0.2.0" + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - ] -} \ No newline at end of file + }, + "additionalProperties": false +} diff --git a/bindings/nats/0.1.0/operation.json b/bindings/nats/0.1.0/operation.json index 9a75fd15..a956db9c 100644 --- a/bindings/nats/0.1.0/operation.json +++ b/bindings/nats/0.1.0/operation.json @@ -3,31 +3,31 @@ "$id": "http://asyncapi.com/bindings/nats/0.1.0/operation.json", "title": "NATS operation bindings object", "description": "This object contains information about the operation representation in NATS.", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + "examples": [ + { + "bindingVersion": "0.1.0", + "queue": "MyCustomQueue" } - }, + ], + "type": "object", "properties": { - "queue": { - "type": "string", - "description": "Defines the name of the queue to use. It MUST NOT exceed 255 characters.", - "maxLength": 255 - }, "bindingVersion": { + "description": "The version of this binding. If omitted, 'latest' MUST be assumed.", "type": "string", "enum": [ "0.1.0" - ], - "description": "The version of this binding. If omitted, 'latest' MUST be assumed." + ] + }, + "queue": { + "description": "Defines the name of the queue to use. It MUST NOT exceed 255 characters.", + "type": "string", + "maxLength": 255 } }, - "examples": [ - { - "queue": "MyCustomQueue", - "bindingVersion": "0.1.0" + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - ] + }, + "additionalProperties": false } diff --git a/bindings/pulsar/0.1.0/channel.json b/bindings/pulsar/0.1.0/channel.json index 187194f2..acafbcaf 100644 --- a/bindings/pulsar/0.1.0/channel.json +++ b/bindings/pulsar/0.1.0/channel.json @@ -3,90 +3,90 @@ "$id": "http://asyncapi.com/bindings/pulsar/0.1.0/channel.json", "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": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + "examples": [ + { + "bindingVersion": "0.1.0", + "compaction": 1000, + "deduplication": true, + "geo-replication": [ + "us-west", + "us-east" + ], + "namespace": "ns1", + "persistence": "persistent", + "retention": { + "size": 1000, + "time": 15 + }, + "ttl": 360 } - }, + ], + "type": "object", "required": [ "namespace", "persistence" ], "properties": { - "namespace": { - "type": "string", - "description": "The namespace, the channel is associated with." - }, - "persistence": { + "bindingVersion": { + "description": "The version of this binding. If omitted, 'latest' MUST be assumed.", "type": "string", "enum": [ - "persistent", - "non-persistent" - ], - "description": "persistence of the topic in Pulsar." + "0.1.0" + ] }, "compaction": { + "description": "Topic compaction threshold given in MB", "type": "integer", - "minimum": 0, - "description": "Topic compaction threshold given in MB" + "minimum": 0 + }, + "deduplication": { + "description": "Whether deduplication of events is enabled or not.", + "type": "boolean" }, "geo-replication": { - "type": "array", "description": "A list of clusters the topic is replicated to.", + "type": "array", "items": { "type": "string" } }, + "namespace": { + "description": "The namespace, the channel is associated with.", + "type": "string" + }, + "persistence": { + "description": "persistence of the topic in Pulsar.", + "type": "string", + "enum": [ + "persistent", + "non-persistent" + ] + }, "retention": { "type": "object", - "additionalProperties": false, "properties": { - "time": { + "size": { + "description": "Size given in MegaBytes. `0` = Disable message retention.", "type": "integer", - "minimum": 0, - "description": "Time given in Minutes. `0` = Disable message retention." + "minimum": 0 }, - "size": { + "time": { + "description": "Time given in Minutes. `0` = Disable message retention.", "type": "integer", - "minimum": 0, - "description": "Size given in MegaBytes. `0` = Disable message retention." + "minimum": 0 } - } + }, + "additionalProperties": false }, "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." + "description": "TTL in seconds for the specified topic", + "type": "integer" } }, - "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" + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - ] -} \ No newline at end of file + }, + "additionalProperties": false +} diff --git a/bindings/pulsar/0.1.0/server.json b/bindings/pulsar/0.1.0/server.json index f894fac1..9c7bd35a 100644 --- a/bindings/pulsar/0.1.0/server.json +++ b/bindings/pulsar/0.1.0/server.json @@ -3,30 +3,30 @@ "$id": "http://asyncapi.com/bindings/pulsar/0.1.0/server.json", "title": "Server Schema", "description": "This object contains server information of Pulsar broker, which covers cluster and tenant 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": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + "examples": [ + { + "bindingVersion": "0.1.0", + "tenant": "contoso" } - }, + ], + "type": "object", "properties": { - "tenant": { - "type": "string", - "description": "The pulsar tenant. If omitted, 'public' MUST be assumed." - }, "bindingVersion": { + "description": "The version of this binding. If omitted, 'latest' MUST be assumed.", "type": "string", "enum": [ "0.1.0" - ], - "description": "The version of this binding. If omitted, 'latest' MUST be assumed." + ] + }, + "tenant": { + "description": "The pulsar tenant. If omitted, 'public' MUST be assumed.", + "type": "string" } }, - "examples": [ - { - "tenant": "contoso", - "bindingVersion": "0.1.0" + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - ] -} \ No newline at end of file + }, + "additionalProperties": false +} diff --git a/bindings/sns/0.1.0/channel.json b/bindings/sns/0.1.0/channel.json index 552b63e0..91449485 100644 --- a/bindings/sns/0.1.0/channel.json +++ b/bindings/sns/0.1.0/channel.json @@ -3,17 +3,33 @@ "$id": "http://asyncapi.com/bindings/sns/0.1.0/channel.json", "title": "Channel Schema", "description": "This object contains information about the channel representation in SNS.", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + "examples": [ + { + "name": "my-sns-topic", + "policy": { + "statements": [ + { + "action": "SNS:Publish", + "effect": "Allow", + "principal": "*" + } + ] + } } - }, + ], + "type": "object", + "required": [ + "name" + ], "properties": { + "bindingVersion": { + "description": "The version of this binding.", + "default": "latest", + "type": "string" + }, "name": { - "type": "string", - "description": "The name of the topic. Can be different from the channel name to allow flexibility around AWS resource naming limitations." + "description": "The name of the topic. Can be different from the channel name to allow flexibility around AWS resource naming limitations.", + "type": "string" }, "ordering": { "$ref": "http://asyncapi.com/bindings/sns/0.1.0/channel.json#/definitions/ordering" @@ -22,83 +38,74 @@ "$ref": "http://asyncapi.com/bindings/sns/0.1.0/channel.json#/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" + "description": "Key-value pairs that represent AWS tags on the topic.", + "type": "object" } }, - "required": [ - "name" - ], + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + } + }, + "additionalProperties": false, "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": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" - } - }, + "type": "object", + "required": [ + "type" + ], "properties": { "type": { - "type": "string", "description": "Defines the type of SNS Topic.", + "type": "string", "enum": [ "standard", "FIFO" ] }, "contentBasedDeduplication": { - "type": "boolean", - "description": "True to turn on de-duplication of messages for a channel." + "description": "True to turn on de-duplication of messages for a channel.", + "type": "boolean" } }, - "required": [ - "type" - ] - }, - "policy": { - "type": "object", - "description": "The security policy for the SNS Topic.", "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - }, + } + }, + "policy": { + "description": "The security policy for the SNS Topic.", + "type": "object", + "required": [ + "statements" + ], "properties": { "statements": { - "type": "array", "description": "An array of statement objects, each of which controls a permission for this topic", + "type": "array", "items": { "$ref": "http://asyncapi.com/bindings/sns/0.1.0/channel.json#/definitions/statement" } } }, - "required": [ - "statements" - ] - }, - "statement": { - "type": "object", "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - }, + } + }, + "statement": { + "type": "object", + "required": [ + "effect", + "principal", + "action" + ], "properties": { - "effect": { - "type": "string", - "enum": [ - "Allow", - "Deny" - ] - }, - "principal": { - "description": "The AWS account or resource ARN that this statement applies to.", + "action": { + "description": "The SNS permission being allowed or denied e.g. sns:Publish", "oneOf": [ { "type": "string" @@ -111,8 +118,15 @@ } ] }, - "action": { - "description": "The SNS permission being allowed or denied e.g. sns:Publish", + "effect": { + "type": "string", + "enum": [ + "Allow", + "Deny" + ] + }, + "principal": { + "description": "The AWS account or resource ARN that this statement applies to.", "oneOf": [ { "type": "string" @@ -126,25 +140,11 @@ ] } }, - "required": [ - "effect", - "principal", - "action" - ] - } - }, - "examples": [ - { - "name": "my-sns-topic", - "policy": { - "statements": [ - { - "effect": "Allow", - "principal": "*", - "action": "SNS:Publish" - } - ] + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + } } } - ] + } } diff --git a/bindings/sns/0.1.0/operation.json b/bindings/sns/0.1.0/operation.json index 4c890902..bde09012 100644 --- a/bindings/sns/0.1.0/operation.json +++ b/bindings/sns/0.1.0/operation.json @@ -3,100 +3,111 @@ "$id": "http://asyncapi.com/bindings/sns/0.1.0/operation.json", "title": "Operation Schema", "description": "This object contains information about the operation representation in SNS.", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + "examples": [ + { + "consumers": [ + { + "deliveryPolicy": { + "backoffFunction": "linear", + "maxDelayTarget": 100, + "maxReceivesPerSecond": 2, + "minDelayTarget": 10, + "numMaxDelayRetries": 5, + "numMinDelayRetries": 3, + "numNoDelayRetries": 2, + "numRetries": 5 + }, + "endpoint": { + "name": "someQueue" + }, + "filterPolicy": { + "customer_interests": [ + "rugby", + "football", + "baseball" + ], + "event": [ + { + "anything-but": "order_cancelled" + } + ], + "store": [ + "asyncapi_corp" + ] + }, + "filterPolicyScope": "MessageAttributes", + "protocol": "sqs", + "rawMessageDelivery": false, + "redrivePolicy": { + "deadLetterQueue": { + "arn": "arn:aws:SQS:eu-west-1:0000000:123456789" + }, + "maxReceiveCount": 25 + } + } + ], + "topic": { + "name": "someTopic" + } } - }, + ], + "type": "object", + "required": [ + "consumers" + ], "properties": { - "topic": { - "$ref": "http://asyncapi.com/bindings/sns/0.1.0/operation.json#/definitions/identifier", - "description": "Often we can assume that the SNS Topic is the channel name-we provide this field in case the you need to supply the ARN, or the Topic name is not the channel name in the AsyncAPI document." + "bindingVersion": { + "description": "The version of this binding.", + "default": "latest", + "type": "string" }, "consumers": { - "type": "array", "description": "The protocols that listen to this topic and their endpoints.", + "type": "array", + "minItems": 1, "items": { "$ref": "http://asyncapi.com/bindings/sns/0.1.0/operation.json#/definitions/consumer" - }, - "minItems": 1 + } }, "deliveryPolicy": { - "$ref": "http://asyncapi.com/bindings/sns/0.1.0/operation.json#/definitions/deliveryPolicy", - "description": "Policy for retries to HTTP. The field is the default for HTTP receivers of the SNS Topic which may be overridden by a specific consumer." + "description": "Policy for retries to HTTP. The field is the default for HTTP receivers of the SNS Topic which may be overridden by a specific consumer.", + "$ref": "http://asyncapi.com/bindings/sns/0.1.0/operation.json#/definitions/deliveryPolicy" }, - "bindingVersion": { - "type": "string", - "description": "The version of this binding.", - "default": "latest" + "topic": { + "description": "Often we can assume that the SNS Topic is the channel name-we provide this field in case the you need to supply the ARN, or the Topic name is not the channel name in the AsyncAPI document.", + "$ref": "http://asyncapi.com/bindings/sns/0.1.0/operation.json#/definitions/identifier" } }, - "required": [ - "consumers" - ], + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + } + }, + "additionalProperties": false, "definitions": { - "identifier": { - "type": "object", - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" - } - }, - "properties": { - "url": { - "type": "string", - "description": "The endpoint is a URL." - }, - "email": { - "type": "string", - "description": "The endpoint is an email address." - }, - "phone": { - "type": "string", - "description": "The endpoint is a phone number." - }, - "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. We don't use $ref because we are referring, not including." - } - } - }, "consumer": { "type": "object", - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" - } - }, + "required": [ + "protocol", + "endpoint", + "rawMessageDelivery" + ], "properties": { - "protocol": { - "description": "The protocol that this endpoint receives messages by.", - "type": "string", - "enum": [ - "http", - "https", - "email", - "email-json", - "sms", - "sqs", - "application", - "lambda", - "firehose" - ] + "deliveryPolicy": { + "description": "Policy for retries to HTTP. The parameter is for that SNS Subscription and overrides any policy on the SNS Topic.", + "$ref": "http://asyncapi.com/bindings/sns/0.1.0/operation.json#/definitions/deliveryPolicy" + }, + "displayName": { + "description": "The display name to use with an SNS subscription", + "type": "string" }, "endpoint": { "description": "The endpoint messages are delivered to.", "$ref": "http://asyncapi.com/bindings/sns/0.1.0/operation.json#/definitions/identifier" }, "filterPolicy": { - "type": "object", "description": "Only receive a subset of messages from the channel, determined by this policy. Depending on the FilterPolicyScope, a map of either a message attribute or message body to an array of possible matches. The match may be a simple string for an exact match, but it may also be an object that represents a constraint and values for that constraint.", + "type": "object", "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" @@ -120,71 +131,49 @@ } }, "filterPolicyScope": { - "type": "string", "description": "Determines whether the FilterPolicy applies to MessageAttributes or MessageBody.", + "default": "MessageAttributes", + "type": "string", "enum": [ "MessageAttributes", "MessageBody" - ], - "default": "MessageAttributes" + ] + }, + "protocol": { + "description": "The protocol that this endpoint receives messages by.", + "type": "string", + "enum": [ + "http", + "https", + "email", + "email-json", + "sms", + "sqs", + "application", + "lambda", + "firehose" + ] }, "rawMessageDelivery": { - "type": "boolean", - "description": "If true AWS SNS attributes are removed from the body, and for SQS, SNS message attributes are copied to SQS message attributes. If false the SNS attributes are included in the body." + "description": "If true AWS SNS attributes are removed from the body, and for SQS, SNS message attributes are copied to SQS message attributes. If false the SNS attributes are included in the body.", + "type": "boolean" }, "redrivePolicy": { "$ref": "http://asyncapi.com/bindings/sns/0.1.0/operation.json#/definitions/redrivePolicy" - }, - "deliveryPolicy": { - "$ref": "http://asyncapi.com/bindings/sns/0.1.0/operation.json#/definitions/deliveryPolicy", - "description": "Policy for retries to HTTP. The parameter is for that SNS Subscription and overrides any policy on the SNS Topic." - }, - "displayName": { - "type": "string", - "description": "The display name to use with an SNS subscription" } }, - "required": [ - "protocol", - "endpoint", - "rawMessageDelivery" - ] - }, - "deliveryPolicy": { - "type": "object", "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - }, + } + }, + "deliveryPolicy": { + "type": "object", "properties": { - "minDelayTarget": { - "type": "integer", - "description": "The minimum delay for a retry in seconds." - }, - "maxDelayTarget": { - "type": "integer", - "description": "The maximum delay for a retry in seconds." - }, - "numRetries": { - "type": "integer", - "description": "The total number of retries, including immediate, pre-backoff, backoff, and post-backoff retries." - }, - "numNoDelayRetries": { - "type": "integer", - "description": "The number of immediate retries (with no delay)." - }, - "numMinDelayRetries": { - "type": "integer", - "description": "The number of immediate retries (with delay)." - }, - "numMaxDelayRetries": { - "type": "integer", - "description": "The number of post-backoff phase retries, with the maximum delay between retries." - }, "backoffFunction": { - "type": "string", "description": "The algorithm for backoff between retries.", + "type": "string", "enum": [ "arithmetic", "exponential", @@ -192,82 +181,93 @@ "linear" ] }, + "maxDelayTarget": { + "description": "The maximum delay for a retry in seconds.", + "type": "integer" + }, "maxReceivesPerSecond": { - "type": "integer", - "description": "The maximum number of deliveries per second, per subscription." + "description": "The maximum number of deliveries per second, per subscription.", + "type": "integer" + }, + "minDelayTarget": { + "description": "The minimum delay for a retry in seconds.", + "type": "integer" + }, + "numMaxDelayRetries": { + "description": "The number of post-backoff phase retries, with the maximum delay between retries.", + "type": "integer" + }, + "numMinDelayRetries": { + "description": "The number of immediate retries (with delay).", + "type": "integer" + }, + "numNoDelayRetries": { + "description": "The number of immediate retries (with no delay).", + "type": "integer" + }, + "numRetries": { + "description": "The total number of retries, including immediate, pre-backoff, backoff, and post-backoff retries.", + "type": "integer" + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } } }, - "redrivePolicy": { + "identifier": { "type": "object", - "description": "Prevent poison pill messages by moving un-processable messages to an SQS dead letter queue.", + "properties": { + "arn": { + "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}", + "type": "string" + }, + "email": { + "description": "The endpoint is an email address.", + "type": "string" + }, + "name": { + "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. We don't use $ref because we are referring, not including.", + "type": "string" + }, + "phone": { + "description": "The endpoint is a phone number.", + "type": "string" + }, + "url": { + "description": "The endpoint is a URL.", + "type": "string" + } + }, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - }, + } + }, + "redrivePolicy": { + "description": "Prevent poison pill messages by moving un-processable messages to an SQS dead letter queue.", + "type": "object", + "required": [ + "deadLetterQueue" + ], "properties": { "deadLetterQueue": { - "$ref": "http://asyncapi.com/bindings/sns/0.1.0/operation.json#/definitions/identifier", - "description": "The SQS queue to use as a dead letter queue (DLQ)." + "description": "The SQS queue to use as a dead letter queue (DLQ).", + "$ref": "http://asyncapi.com/bindings/sns/0.1.0/operation.json#/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 + "default": 10, + "type": "integer" } }, - "required": [ - "deadLetterQueue" - ] - } - }, - "examples": [ - { - "topic": { - "name": "someTopic" - }, - "consumers": [ - { - "protocol": "sqs", - "endpoint": { - "name": "someQueue" - }, - "filterPolicy": { - "store": [ - "asyncapi_corp" - ], - "event": [ - { - "anything-but": "order_cancelled" - } - ], - "customer_interests": [ - "rugby", - "football", - "baseball" - ] - }, - "filterPolicyScope": "MessageAttributes", - "rawMessageDelivery": false, - "redrivePolicy": { - "deadLetterQueue": { - "arn": "arn:aws:SQS:eu-west-1:0000000:123456789" - }, - "maxReceiveCount": 25 - }, - "deliveryPolicy": { - "minDelayTarget": 10, - "maxDelayTarget": 100, - "numRetries": 5, - "numNoDelayRetries": 2, - "numMinDelayRetries": 3, - "numMaxDelayRetries": 5, - "backoffFunction": "linear", - "maxReceivesPerSecond": 2 - } + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - ] + } } - ] + } } diff --git a/bindings/solace/0.2.0/operation.json b/bindings/solace/0.2.0/operation.json index 8a4ad357..e62daab0 100644 --- a/bindings/solace/0.2.0/operation.json +++ b/bindings/solace/0.2.0/operation.json @@ -3,51 +3,71 @@ "$id": "http://asyncapi.com/bindings/solace/0.2.0/operation.json", "title": "Solace operation bindings object", "description": "This object contains information about the operation representation in Solace.", + "examples": [ + { + "bindingVersion": "0.2.0", + "destinations": [ + { + "destinationType": "queue", + "queue": { + "accessType": "nonexclusive", + "name": "sampleQueue", + "topicSubscriptions": [ + "samples/*" + ] + } + }, + { + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] + } + ] + } + ], "type": "object", - "additionalProperties": false, "properties": { + "bindingVersion": { + "description": "The version of this binding. If omitted, \"latest\" MUST be assumed.", + "type": "string", + "enum": [ + "0.2.0" + ] + }, "destinations": { "description": "The list of Solace destinations referenced in the operation.", "type": "array", "items": { "type": "object", - "properties": { - "deliveryMode": { - "type": "string", - "enum": [ - "direct", - "persistent" - ] - } - }, "oneOf": [ { "properties": { "destinationType": { + "description": "If the type is queue, then the subscriber can bind to the queue. The queue subscribes to the given topicSubscriptions. If no topicSubscriptions are provied, the queue will subscribe to the topic as represented by the channel name.", "type": "string", - "const": "queue", - "description": "If the type is queue, then the subscriber can bind to the queue. The queue subscribes to the given topicSubscriptions. If no topicSubscriptions are provied, the queue will subscribe to the topic as represented by the channel name." + "const": "queue" }, "queue": { "type": "object", "properties": { - "name": { + "accessType": { "type": "string", - "description": "The name of the queue" + "enum": [ + "exclusive", + "nonexclusive" + ] + }, + "name": { + "description": "The name of the queue", + "type": "string" }, "topicSubscriptions": { - "type": "array", "description": "The list of topics that the queue subscribes to.", + "type": "array", "items": { "type": "string" } - }, - "accessType": { - "type": "string", - "enum": [ - "exclusive", - "nonexclusive" - ] } } } @@ -56,51 +76,31 @@ { "properties": { "destinationType": { + "description": "If the type is topic, then the subscriber subscribes to the given topicSubscriptions. If no topicSubscriptions are provided, the client will subscribe to the topic as represented by the channel name.", "type": "string", - "const": "topic", - "description": "If the type is topic, then the subscriber subscribes to the given topicSubscriptions. If no topicSubscriptions are provided, the client will subscribe to the topic as represented by the channel name." + "const": "topic" }, "topicSubscriptions": { - "type": "array", "description": "The list of topics that the client subscribes to.", + "type": "array", "items": { "type": "string" } - } + } } } - ] - } - }, - "bindingVersion": { - "type": "string", - "enum": [ - "0.2.0" - ], - "description": "The version of this binding. If omitted, \"latest\" MUST be assumed." - } - }, - "examples": [ - { - "bindingVersion": "0.2.0", - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "sampleQueue", - "topicSubscriptions": [ - "samples/*" - ], - "accessType": "nonexclusive" + ], + "properties": { + "deliveryMode": { + "type": "string", + "enum": [ + "direct", + "persistent" + ] } - }, - { - "destinationType": "topic", - "topicSubscriptions": [ - "samples/*" - ] } - ] + } } - ] + }, + "additionalProperties": false } diff --git a/bindings/solace/0.2.0/server.json b/bindings/solace/0.2.0/server.json index 5d34ba25..a6633d08 100644 --- a/bindings/solace/0.2.0/server.json +++ b/bindings/solace/0.2.0/server.json @@ -3,30 +3,30 @@ "$id": "http://asyncapi.com/bindings/solace/0.2.0/server.json", "title": "Solace server bindings object", "description": "This object contains server connection information about the Solace broker. This object contains additional connectivity information not possible to represent within the core AsyncAPI specification.", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + "examples": [ + { + "bindingVersion": "0.2.0", + "msgVpn": "ProdVPN" } - }, + ], + "type": "object", "properties": { - "msvVpn": { - "type": "string", - "description": "The name of the Virtual Private Network to connect to on the Solace broker." - }, "bindingVersion": { + "description": "The version of this binding.", "type": "string", "enum": [ "0.2.0" - ], - "description": "The version of this binding." + ] + }, + "msvVpn": { + "description": "The name of the Virtual Private Network to connect to on the Solace broker.", + "type": "string" } }, - "examples": [ - { - "msgVpn": "ProdVPN", - "bindingVersion": "0.2.0" + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - ] + }, + "additionalProperties": false } diff --git a/bindings/solace/0.3.0/operation.json b/bindings/solace/0.3.0/operation.json index e1c3a5e8..2f8758b1 100644 --- a/bindings/solace/0.3.0/operation.json +++ b/bindings/solace/0.3.0/operation.json @@ -3,45 +3,54 @@ "$id": "http://asyncapi.com/bindings/solace/0.3.0/operation.json", "title": "Solace operation bindings object", "description": "This object contains information about the operation representation in Solace.", + "examples": [ + { + "bindingVersion": "0.3.0", + "destinations": [ + { + "destinationType": "queue", + "queue": { + "accessType": "nonexclusive", + "name": "sampleQueue", + "topicSubscriptions": [ + "samples/*" + ] + } + }, + { + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] + } + ] + } + ], "type": "object", - "additionalProperties": false, "properties": { + "bindingVersion": { + "description": "The version of this binding. If omitted, \"latest\" MUST be assumed.", + "type": "string", + "enum": [ + "0.3.0" + ] + }, "destinations": { "description": "The list of Solace destinations referenced in the operation.", "type": "array", "items": { "type": "object", - "properties": { - "deliveryMode": { - "type": "string", - "enum": [ - "direct", - "persistent" - ] - } - }, "oneOf": [ { "properties": { "destinationType": { + "description": "If the type is queue, then the subscriber can bind to the queue. The queue subscribes to the given topicSubscriptions. If no topicSubscriptions are provied, the queue will subscribe to the topic as represented by the channel name.", "type": "string", - "const": "queue", - "description": "If the type is queue, then the subscriber can bind to the queue. The queue subscribes to the given topicSubscriptions. If no topicSubscriptions are provied, the queue will subscribe to the topic as represented by the channel name." + "const": "queue" }, "queue": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "The name of the queue" - }, - "topicSubscriptions": { - "type": "array", - "description": "The list of topics that the queue subscribes to.", - "items": { - "type": "string" - } - }, "accessType": { "type": "string", "enum": [ @@ -49,13 +58,24 @@ "nonexclusive" ] }, + "maxMsgSpoolUsage": { + "description": "The maximum amount of message spool that the given queue may use", + "type": "string" + }, "maxTtl": { - "type": "string", - "description": "The maximum TTL to apply to messages to be spooled." + "description": "The maximum TTL to apply to messages to be spooled.", + "type": "string" }, - "maxMsgSpoolUsage": { - "type": "string", - "description": "The maximum amount of message spool that the given queue may use" + "name": { + "description": "The name of the queue", + "type": "string" + }, + "topicSubscriptions": { + "description": "The list of topics that the queue subscribes to.", + "type": "array", + "items": { + "type": "string" + } } } } @@ -64,51 +84,31 @@ { "properties": { "destinationType": { + "description": "If the type is topic, then the subscriber subscribes to the given topicSubscriptions. If no topicSubscriptions are provided, the client will subscribe to the topic as represented by the channel name.", "type": "string", - "const": "topic", - "description": "If the type is topic, then the subscriber subscribes to the given topicSubscriptions. If no topicSubscriptions are provided, the client will subscribe to the topic as represented by the channel name." + "const": "topic" }, "topicSubscriptions": { - "type": "array", "description": "The list of topics that the client subscribes to.", + "type": "array", "items": { "type": "string" } - } + } } } - ] - } - }, - "bindingVersion": { - "type": "string", - "enum": [ - "0.3.0" - ], - "description": "The version of this binding. If omitted, \"latest\" MUST be assumed." - } - }, - "examples": [ - { - "bindingVersion": "0.3.0", - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "sampleQueue", - "topicSubscriptions": [ - "samples/*" - ], - "accessType": "nonexclusive" + ], + "properties": { + "deliveryMode": { + "type": "string", + "enum": [ + "direct", + "persistent" + ] } - }, - { - "destinationType": "topic", - "topicSubscriptions": [ - "samples/*" - ] } - ] + } } - ] + }, + "additionalProperties": false } diff --git a/bindings/solace/0.3.0/server.json b/bindings/solace/0.3.0/server.json index c4755d29..2949022a 100644 --- a/bindings/solace/0.3.0/server.json +++ b/bindings/solace/0.3.0/server.json @@ -3,30 +3,30 @@ "$id": "http://asyncapi.com/bindings/solace/0.3.0/server.json", "title": "Solace server bindings object", "description": "This object contains server connection information about the Solace broker. This object contains additional connectivity information not possible to represent within the core AsyncAPI specification.", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + "examples": [ + { + "bindingVersion": "0.3.0", + "msgVpn": "ProdVPN" } - }, + ], + "type": "object", "properties": { - "msgVpn": { - "type": "string", - "description": "The name of the Virtual Private Network to connect to on the Solace broker." - }, "bindingVersion": { + "description": "The version of this binding.", "type": "string", "enum": [ "0.3.0" - ], - "description": "The version of this binding." + ] + }, + "msgVpn": { + "description": "The name of the Virtual Private Network to connect to on the Solace broker.", + "type": "string" } }, - "examples": [ - { - "msgVpn": "ProdVPN", - "bindingVersion": "0.3.0" + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - ] + }, + "additionalProperties": false } diff --git a/bindings/solace/0.4.0/operation.json b/bindings/solace/0.4.0/operation.json index 3c9d6f8d..11fb551b 100644 --- a/bindings/solace/0.4.0/operation.json +++ b/bindings/solace/0.4.0/operation.json @@ -3,52 +3,54 @@ "$id": "http://asyncapi.com/bindings/solace/0.4.0/operation.json", "title": "Solace operation bindings object", "description": "This object contains information about the operation representation in Solace.", + "examples": [ + { + "bindingVersion": "0.4.0", + "destinations": [ + { + "destinationType": "queue", + "queue": { + "accessType": "nonexclusive", + "name": "sampleQueue", + "topicSubscriptions": [ + "samples/*" + ] + } + }, + { + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] + } + ] + } + ], "type": "object", - "additionalProperties": false, "properties": { "bindingVersion": { + "description": "The version of this binding. If omitted, \"latest\" MUST be assumed.", "type": "string", "enum": [ "0.4.0" - ], - "description": "The version of this binding. If omitted, \"latest\" MUST be assumed." + ] }, "destinations": { "description": "The list of Solace destinations referenced in the operation.", "type": "array", "items": { "type": "object", - "properties": { - "deliveryMode": { - "type": "string", - "enum": [ - "direct", - "persistent" - ] - } - }, "oneOf": [ { "properties": { "destinationType": { + "description": "If the type is queue, then the subscriber can bind to the queue. The queue subscribes to the given topicSubscriptions. If no topicSubscriptions are provied, the queue will subscribe to the topic as represented by the channel name.", "type": "string", - "const": "queue", - "description": "If the type is queue, then the subscriber can bind to the queue. The queue subscribes to the given topicSubscriptions. If no topicSubscriptions are provied, the queue will subscribe to the topic as represented by the channel name." + "const": "queue" }, "queue": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "The name of the queue" - }, - "topicSubscriptions": { - "type": "array", - "description": "The list of topics that the queue subscribes to.", - "items": { - "type": "string" - } - }, "accessType": { "type": "string", "enum": [ @@ -56,13 +58,24 @@ "nonexclusive" ] }, + "maxMsgSpoolUsage": { + "description": "The maximum amount of message spool that the given queue may use", + "type": "string" + }, "maxTtl": { - "type": "string", - "description": "The maximum TTL to apply to messages to be spooled." + "description": "The maximum TTL to apply to messages to be spooled.", + "type": "string" }, - "maxMsgSpoolUsage": { - "type": "string", - "description": "The maximum amount of message spool that the given queue may use" + "name": { + "description": "The name of the queue", + "type": "string" + }, + "topicSubscriptions": { + "description": "The list of topics that the queue subscribes to.", + "type": "array", + "items": { + "type": "string" + } } } } @@ -71,58 +84,45 @@ { "properties": { "destinationType": { + "description": "If the type is topic, then the subscriber subscribes to the given topicSubscriptions. If no topicSubscriptions are provided, the client will subscribe to the topic as represented by the channel name.", "type": "string", - "const": "topic", - "description": "If the type is topic, then the subscriber subscribes to the given topicSubscriptions. If no topicSubscriptions are provided, the client will subscribe to the topic as represented by the channel name." + "const": "topic" }, "topicSubscriptions": { - "type": "array", "description": "The list of topics that the client subscribes to.", + "type": "array", "items": { "type": "string" } - } + } } } - ] + ], + "properties": { + "deliveryMode": { + "type": "string", + "enum": [ + "direct", + "persistent" + ] + } + } } }, - "timeToLive": { - "type": "integer", - "description": "Interval in milliseconds or a Schema Object containing the definition of the lifetime of the message." + "dmqEligible": { + "description": "Set the message to be eligible to be moved to a Dead Message Queue. The default value is false.", + "type": "boolean" }, "priority": { + "description": "The valid priority value range is 0-255 with 0 as the lowest priority and 255 as the highest or a Schema Object containing the definition of the priority.", "type": "integer", - "minimum": 0, "maximum": 255, - "description": "The valid priority value range is 0-255 with 0 as the lowest priority and 255 as the highest or a Schema Object containing the definition of the priority." + "minimum": 0 }, - "dmqEligible": { - "type": "boolean", - "description": "Set the message to be eligible to be moved to a Dead Message Queue. The default value is false." + "timeToLive": { + "description": "Interval in milliseconds or a Schema Object containing the definition of the lifetime of the message.", + "type": "integer" } }, - "examples": [ - { - "bindingVersion": "0.4.0", - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "sampleQueue", - "topicSubscriptions": [ - "samples/*" - ], - "accessType": "nonexclusive" - } - }, - { - "destinationType": "topic", - "topicSubscriptions": [ - "samples/*" - ] - } - ] - } - ] + "additionalProperties": false } diff --git a/bindings/solace/0.4.0/server.json b/bindings/solace/0.4.0/server.json index 632cd5c7..c51d72ae 100644 --- a/bindings/solace/0.4.0/server.json +++ b/bindings/solace/0.4.0/server.json @@ -3,36 +3,36 @@ "$id": "http://asyncapi.com/bindings/solace/0.4.0/server.json", "title": "Solace server bindings object", "description": "This object contains server connection information about the Solace broker. This object contains additional connectivity information not possible to represent within the core AsyncAPI specification.", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + "examples": [ + { + "bindingVersion": "0.4.0", + "msgVpn": "ProdVPN" } - }, + ], + "type": "object", "properties": { - "msgVpn": { + "bindingVersion": { + "description": "The version of this binding.", "type": "string", - "description": "The name of the Virtual Private Network to connect to on the Solace broker." + "enum": [ + "0.4.0" + ] }, "clientName": { + "description": "A unique client name to use to register to the appliance. If specified, it must be a valid Topic name, and a maximum of 160 bytes in length when encoded as UTF-8.", "type": "string", - "minLength": 1, "maxLength": 160, - "description": "A unique client name to use to register to the appliance. If specified, it must be a valid Topic name, and a maximum of 160 bytes in length when encoded as UTF-8." + "minLength": 1 }, - "bindingVersion": { - "type": "string", - "enum": [ - "0.4.0" - ], - "description": "The version of this binding." + "msgVpn": { + "description": "The name of the Virtual Private Network to connect to on the Solace broker.", + "type": "string" } }, - "examples": [ - { - "msgVpn": "ProdVPN", - "bindingVersion": "0.4.0" + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - ] + }, + "additionalProperties": false } diff --git a/bindings/sqs/0.2.0/channel.json b/bindings/sqs/0.2.0/channel.json index 91431157..05f0e031 100644 --- a/bindings/sqs/0.2.0/channel.json +++ b/bindings/sqs/0.2.0/channel.json @@ -3,187 +3,229 @@ "$id": "http://asyncapi.com/bindings/sqs/0.2.0/channel.json", "title": "Channel Schema", "description": "This object contains information about the channel representation in SQS.", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + "examples": [ + { + "deadLetterQueue": { + "deliveryDelay": 0, + "messageRetentionPeriod": 604800, + "name": "myQueue_error", + "receiveMessageWaitTime": 0, + "visibilityTimeout": 0 + }, + "queue": { + "deduplicationScope": "messageGroup", + "deliveryDelay": 15, + "fifoQueue": true, + "fifoThroughputLimit": "perMessageGroupId", + "messageRetentionPeriod": 86400, + "name": "myQueue", + "policy": { + "statements": [ + { + "action": [ + "sqs:SendMessage", + "sqs:ReceiveMessage" + ], + "effect": "Deny", + "principal": "arn:aws:iam::123456789012:user/dec.kolakowski" + } + ] + }, + "receiveMessageWaitTime": 0, + "redrivePolicy": { + "deadLetterQueue": { + "arn": "arn:aws:SQS:eu-west-1:0000000:123456789" + }, + "maxReceiveCount": 15 + }, + "tags": { + "owner": "AsyncAPI.NET", + "platform": "AsyncAPIOrg" + }, + "visibilityTimeout": 60 + } } - }, + ], + "type": "object", + "required": [ + "queue" + ], "properties": { - "queue": { - "description": "A definition of the queue that will be used as the channel.", - "$ref": "http://asyncapi.com/bindings/sqs/0.2.0/channel.json#/definitions/queue" - }, - "deadLetterQueue": { - "description": "A definition of the queue that will be used for un-processable messages.", - "$ref": "http://asyncapi.com/bindings/sqs/0.2.0/channel.json#/definitions/queue" - }, "bindingVersion": { + "description": "The version of this binding. If omitted, 'latest' MUST be assumed.", + "default": "latest", "type": "string", "enum": [ "0.1.0", "0.2.0" - ], - "description": "The version of this binding. If omitted, 'latest' MUST be assumed.", - "default": "latest" + ] + }, + "deadLetterQueue": { + "description": "A definition of the queue that will be used for un-processable messages.", + "$ref": "http://asyncapi.com/bindings/sqs/0.2.0/channel.json#/definitions/queue" + }, + "queue": { + "description": "A definition of the queue that will be used as the channel.", + "$ref": "http://asyncapi.com/bindings/sqs/0.2.0/channel.json#/definitions/queue" } }, - "required": [ - "queue" - ], + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + } + }, + "additionalProperties": false, "definitions": { - "queue": { + "identifier": { + "description": "The SQS queue to use as a dead letter queue (DLQ).", "type": "object", - "description": "A definition of a queue.", + "properties": { + "arn": { + "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}", + "type": "string" + }, + "name": { + "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.", + "type": "string" + } + }, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } + } + }, + "policy": { + "description": "The security policy for the SQS Queue", + "type": "object", + "required": [ + "statements" + ], + "properties": { + "statements": { + "description": "An array of statement objects, each of which controls a permission for this queue.", + "type": "array", + "items": { + "$ref": "http://asyncapi.com/bindings/sqs/0.2.0/channel.json#/definitions/statement" + } + } }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + } + } + }, + "queue": { + "description": "A definition of a queue.", + "type": "object", + "required": [ + "name", + "fifoQueue" + ], "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": { + "default": "queue", "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" + "enum": [ + "queue", + "messageGroup" + ] }, "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, + "default": 0, + "type": "integer", "maximum": 15, - "default": 0 + "minimum": 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 + "fifoQueue": { + "description": "Is this a FIFO queue?", + "default": false, + "type": "boolean" }, - "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 + "fifoThroughputLimit": { + "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", + "type": "string", + "enum": [ + "perQueue", + "perMessageGroupId" + ] }, "messageRetentionPeriod": { - "type": "integer", "description": "How long to retain a message on the queue in seconds, unless deleted.", - "minimum": 60, + "default": 345600, + "type": "integer", "maximum": 1209600, - "default": 345600 + "minimum": 60 }, - "redrivePolicy": { - "$ref": "http://asyncapi.com/bindings/sqs/0.2.0/channel.json#/definitions/redrivePolicy" + "name": { + "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.", + "type": "string" }, "policy": { "$ref": "http://asyncapi.com/bindings/sqs/0.2.0/channel.json#/definitions/policy" }, + "receiveMessageWaitTime": { + "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, + "type": "integer" + }, + "redrivePolicy": { + "$ref": "http://asyncapi.com/bindings/sqs/0.2.0/channel.json#/definitions/redrivePolicy" + }, "tags": { - "type": "object", - "description": "Key-value pairs that represent AWS tags on the queue." + "description": "Key-value pairs that represent AWS tags on the queue.", + "type": "object" + }, + "visibilityTimeout": { + "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.", + "default": 30, + "type": "integer", + "maximum": 43200, + "minimum": 0 } }, - "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": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - }, + } + }, + "redrivePolicy": { + "description": "Prevent poison pill messages by moving un-processable messages to an SQS dead letter queue.", + "type": "object", + "required": [ + "deadLetterQueue" + ], "properties": { "deadLetterQueue": { "$ref": "http://asyncapi.com/bindings/sqs/0.2.0/channel.json#/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 + "default": 10, + "type": "integer" } }, - "required": [ - "deadLetterQueue" - ] - }, - "identifier": { - "type": "object", - "description": "The SQS queue to use as a dead letter queue (DLQ).", "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - }, - "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": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" - } - }, - "properties": { - "statements": { - "type": "array", - "description": "An array of statement objects, each of which controls a permission for this queue.", - "items": { - "$ref": "http://asyncapi.com/bindings/sqs/0.2.0/channel.json#/definitions/statement" - } - } - }, - "required": [ - "statements" - ] - }, "statement": { "type": "object", - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" - } - }, + "required": [ + "effect", + "principal", + "action" + ], "properties": { - "effect": { - "type": "string", - "enum": [ - "Allow", - "Deny" - ] - }, - "principal": { - "description": "The AWS account or resource ARN that this statement applies to.", + "action": { + "description": "The SQS permission being allowed or denied e.g. sqs:ReceiveMessage", "oneOf": [ { "type": "string" @@ -196,8 +238,15 @@ } ] }, - "action": { - "description": "The SQS permission being allowed or denied e.g. sqs:ReceiveMessage", + "effect": { + "type": "string", + "enum": [ + "Allow", + "Deny" + ] + }, + "principal": { + "description": "The AWS account or resource ARN that this statement applies to.", "oneOf": [ { "type": "string" @@ -211,54 +260,11 @@ ] } }, - "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" + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - }, - "deadLetterQueue": { - "name": "myQueue_error", - "deliveryDelay": 0, - "visibilityTimeout": 0, - "receiveMessageWaitTime": 0, - "messageRetentionPeriod": 604800 } } - ] -} \ No newline at end of file + } +} diff --git a/bindings/sqs/0.2.0/operation.json b/bindings/sqs/0.2.0/operation.json index f25d4423..1ffd0bb9 100644 --- a/bindings/sqs/0.2.0/operation.json +++ b/bindings/sqs/0.2.0/operation.json @@ -3,189 +3,223 @@ "$id": "http://asyncapi.com/bindings/sqs/0.2.0/operation.json", "title": "Operation Schema", "description": "This object contains information about the operation representation in SQS.", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + "examples": [ + { + "queues": [ + { + "deduplicationScope": "messageGroup", + "deliveryDelay": 10, + "fifoQueue": true, + "fifoThroughputLimit": "perMessageGroupId", + "name": "myQueue", + "policy": { + "statements": [ + { + "action": [ + "sqs:SendMessage", + "sqs:ReceiveMessage" + ], + "effect": "Deny", + "principal": "arn:aws:iam::123456789012:user/dec.kolakowski" + } + ] + }, + "redrivePolicy": { + "deadLetterQueue": { + "name": "myQueue_error" + }, + "maxReceiveCount": 15 + } + }, + { + "deliveryDelay": 10, + "name": "myQueue_error" + } + ] } - }, + ], + "type": "object", + "required": [ + "queues" + ], "properties": { - "queues": { - "type": "array", - "description": "Queue objects that are either the endpoint for an SNS Operation Binding Object, or the deadLetterQueue of the SQS Operation Binding Object.", - "items": { - "$ref": "http://asyncapi.com/bindings/sqs/0.2.0/operation.json#/definitions/queue" - } - }, "bindingVersion": { + "description": "The version of this binding. If omitted, 'latest' MUST be assumed.", + "default": "latest", "type": "string", "enum": [ "0.1.0", "0.2.0" - ], - "description": "The version of this binding. If omitted, 'latest' MUST be assumed.", - "default": "latest" + ] + }, + "queues": { + "description": "Queue objects that are either the endpoint for an SNS Operation Binding Object, or the deadLetterQueue of the SQS Operation Binding Object.", + "type": "array", + "items": { + "$ref": "http://asyncapi.com/bindings/sqs/0.2.0/operation.json#/definitions/queue" + } } }, - "required": [ - "queues" - ], + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + } + }, + "additionalProperties": false, "definitions": { - "queue": { + "identifier": { + "description": "The SQS queue to use as a dead letter queue (DLQ).", "type": "object", - "description": "A definition of a queue.", + "properties": { + "arn": { + "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}", + "type": "string" + }, + "name": { + "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.", + "type": "string" + } + }, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } + } + }, + "policy": { + "description": "The security policy for the SQS Queue", + "type": "object", + "required": [ + "statements" + ], + "properties": { + "statements": { + "description": "An array of statement objects, each of which controls a permission for this queue.", + "type": "array", + "items": { + "$ref": "http://asyncapi.com/bindings/sqs/0.2.0/operation.json#/definitions/statement" + } + } }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + } + } + }, + "queue": { + "description": "A definition of a queue.", + "type": "object", + "required": [ + "name" + ], "properties": { "$ref": { - "type": "string", - "description": "Allows for an external definition of a queue. The referenced structure MUST be in the format of a Queue. If there are conflicts between the referenced definition and this Queue's definition, the behavior is undefined." - }, - "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 + "description": "Allows for an external definition of a queue. The referenced structure MUST be in the format of a Queue. If there are conflicts between the referenced definition and this Queue's definition, the behavior is undefined.", + "type": "string" }, "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": { + "default": "queue", "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" + "enum": [ + "queue", + "messageGroup" + ] }, "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, + "default": 0, + "type": "integer", "maximum": 15, - "default": 0 + "minimum": 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 + "fifoQueue": { + "description": "Is this a FIFO queue?", + "default": false, + "type": "boolean" }, - "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 + "fifoThroughputLimit": { + "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", + "type": "string", + "enum": [ + "perQueue", + "perMessageGroupId" + ] }, "messageRetentionPeriod": { - "type": "integer", "description": "How long to retain a message on the queue in seconds, unless deleted.", - "minimum": 60, + "default": 345600, + "type": "integer", "maximum": 1209600, - "default": 345600 + "minimum": 60 }, - "redrivePolicy": { - "$ref": "http://asyncapi.com/bindings/sqs/0.2.0/operation.json#/definitions/redrivePolicy" + "name": { + "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.", + "type": "string" }, "policy": { "$ref": "http://asyncapi.com/bindings/sqs/0.2.0/operation.json#/definitions/policy" }, + "receiveMessageWaitTime": { + "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, + "type": "integer" + }, + "redrivePolicy": { + "$ref": "http://asyncapi.com/bindings/sqs/0.2.0/operation.json#/definitions/redrivePolicy" + }, "tags": { - "type": "object", - "description": "Key-value pairs that represent AWS tags on the queue." + "description": "Key-value pairs that represent AWS tags on the queue.", + "type": "object" + }, + "visibilityTimeout": { + "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.", + "default": 30, + "type": "integer", + "maximum": 43200, + "minimum": 0 } }, - "required": [ - "name" - ] - }, - "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": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - }, + } + }, + "redrivePolicy": { + "description": "Prevent poison pill messages by moving un-processable messages to an SQS dead letter queue.", + "type": "object", + "required": [ + "deadLetterQueue" + ], "properties": { "deadLetterQueue": { - "$ref": "http://asyncapi.com/bindings/sqs/0.2.0/operation.json#/definitions/identifier" + "$ref": "http://asyncapi.com/bindings/sqs/0.2.0/operation.json#/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 + "default": 10, + "type": "integer" } }, - "required": [ - "deadLetterQueue" - ] - }, - "identifier": { - "type": "object", - "description": "The SQS queue to use as a dead letter queue (DLQ).", "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - }, - "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": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" - } - }, - "properties": { - "statements": { - "type": "array", - "description": "An array of statement objects, each of which controls a permission for this queue.", - "items": { - "$ref": "http://asyncapi.com/bindings/sqs/0.2.0/operation.json#/definitions/statement" - } - } - }, - "required": [ - "statements" - ] - }, "statement": { "type": "object", - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" - } - }, + "required": [ + "effect", + "principal", + "action" + ], "properties": { - "effect": { - "type": "string", - "enum": [ - "Allow", - "Deny" - ] - }, - "principal": { - "description": "The AWS account or resource ARN that this statement applies to.", + "action": { + "description": "The SQS permission being allowed or denied e.g. sqs:ReceiveMessage", "oneOf": [ { "type": "string" @@ -198,8 +232,15 @@ } ] }, - "action": { - "description": "The SQS permission being allowed or denied e.g. sqs:ReceiveMessage", + "effect": { + "type": "string", + "enum": [ + "Allow", + "Deny" + ] + }, + "principal": { + "description": "The AWS account or resource ARN that this statement applies to.", "oneOf": [ { "type": "string" @@ -213,46 +254,11 @@ ] } }, - "required": [ - "effect", - "principal", - "action" - ] - } - }, - "examples": [ - { - "queues": [ - { - "name": "myQueue", - "fifoQueue": true, - "deduplicationScope": "messageGroup", - "fifoThroughputLimit": "perMessageGroupId", - "deliveryDelay": 10, - "redrivePolicy": { - "deadLetterQueue": { - "name": "myQueue_error" - }, - "maxReceiveCount": 15 - }, - "policy": { - "statements": [ - { - "effect": "Deny", - "principal": "arn:aws:iam::123456789012:user/dec.kolakowski", - "action": [ - "sqs:SendMessage", - "sqs:ReceiveMessage" - ] - } - ] - } - }, - { - "name": "myQueue_error", - "deliveryDelay": 10 + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - ] + } } - ] + } } diff --git a/bindings/websockets/0.1.0/channel.json b/bindings/websockets/0.1.0/channel.json index 4fa27b0f..3db13b56 100644 --- a/bindings/websockets/0.1.0/channel.json +++ b/bindings/websockets/0.1.0/channel.json @@ -3,23 +3,23 @@ "$id": "http://asyncapi.com/bindings/websockets/0.1.0/channel.json", "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": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + "examples": [ + { + "bindingVersion": "0.1.0", + "method": "POST" } - }, + ], + "type": "object", "properties": { - "method": { + "bindingVersion": { + "description": "The version of this binding. If omitted, 'latest' MUST be assumed.", "type": "string", "enum": [ - "GET", - "POST" - ], - "description": "The HTTP method to use when establishing the connection. Its value MUST be either 'GET' or 'POST'." + "0.1.0" + ] }, - "query": { + "headers": { + "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.", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" @@ -27,10 +27,18 @@ { "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" } - ], - "description": "A Schema object containing the definitions for each query parameter. This schema MUST be of type 'object' and have a 'properties' key." + ] }, - "headers": { + "method": { + "description": "The HTTP method to use when establishing the connection. Its value MUST be either 'GET' or 'POST'.", + "type": "string", + "enum": [ + "GET", + "POST" + ] + }, + "query": { + "description": "A Schema object containing the definitions for each query parameter. This schema MUST be of type 'object' and have a 'properties' key.", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" @@ -38,21 +46,13 @@ { "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" } - ], - "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" + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - ] + }, + "additionalProperties": false } diff --git a/common/avroSchema_v1.json b/common/avroSchema_v1.json index d3448f10..6ef6f96e 100644 --- a/common/avroSchema_v1.json +++ b/common/avroSchema_v1.json @@ -1,220 +1,131 @@ { "$schema": "http://json-schema.org/draft-07/schema#", "$id": "http://asyncapi.com/definitions/3.0.0/avroSchema_v1.json", + "title": "Avro Schema Definition", + "description": "Json-Schema definition for Avro AVSC files.", + "oneOf": [ + { + "$ref": "#/definitions/avroSchema" + } + ], "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.", + "avroArray": { + "title": "Array", + "description": "An array", "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", + "type", + "items" + ], "properties": { - "name": { - "$ref": "#/definitions/name" - }, "type": { - "$ref": "#/definitions/types" - }, - "doc": { - "type": "string" + "type": "string", + "const": "array" }, - "default": true, - "order": { - "enum": [ - "ascending", - "descending", - "ignore" - ] + "items": { + "$ref": "#/definitions/types" }, "aliases": { "type": "array", "items": { "$ref": "#/definitions/name" } - } - }, - "required": [ - "name", - "type" - ] - }, - "avroRecord": { - "title": "Record", - "description": "A Record", - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "record" + }, + "doc": { + "type": "string" }, "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", + "required": [ + "type", + "name", + "symbols" + ], "properties": { "type": { "type": "string", "const": "enum" }, + "aliases": { + "type": "array", + "items": { + "$ref": "#/definitions/name" + } + }, + "doc": { + "type": "string" + }, "name": { "$ref": "#/definitions/name" }, "namespace": { "$ref": "#/definitions/namespace" }, - "doc": { - "type": "string" - }, - "aliases": { + "symbols": { "type": "array", "items": { "$ref": "#/definitions/name" } + } + } + }, + "avroField": { + "title": "Field", + "description": "A field within a Record", + "type": "object", + "required": [ + "name", + "type" + ], + "properties": { + "default": true, + "type": { + "$ref": "#/definitions/types" }, - "symbols": { + "aliases": { "type": "array", "items": { "$ref": "#/definitions/name" } + }, + "doc": { + "type": "string" + }, + "name": { + "$ref": "#/definitions/name" + }, + "order": { + "enum": [ + "ascending", + "descending", + "ignore" + ] } - }, + } + }, + "avroFixed": { + "title": "Fixed", + "description": "A fixed sized array of bytes", + "type": "object", "required": [ "type", "name", - "symbols" - ] - }, - "avroArray": { - "title": "Array", - "description": "An array", - "type": "object", + "size" + ], "properties": { "type": { "type": "string", - "const": "array" - }, - "name": { - "$ref": "#/definitions/name" - }, - "namespace": { - "$ref": "#/definitions/namespace" - }, - "doc": { - "type": "string" + "const": "fixed" }, "aliases": { "type": "array", @@ -222,82 +133,117 @@ "$ref": "#/definitions/name" } }, - "items": { - "$ref": "#/definitions/types" + "doc": { + "type": "string" + }, + "name": { + "$ref": "#/definitions/name" + }, + "namespace": { + "$ref": "#/definitions/namespace" + }, + "size": { + "type": "number" } - }, - "required": [ - "type", - "items" - ] + } }, "avroMap": { "title": "Map", "description": "A map of values", "type": "object", + "required": [ + "type", + "values" + ], "properties": { "type": { "type": "string", "const": "map" }, - "name": { - "$ref": "#/definitions/name" - }, - "namespace": { - "$ref": "#/definitions/namespace" - }, - "doc": { - "type": "string" - }, "aliases": { "type": "array", "items": { "$ref": "#/definitions/name" } }, + "doc": { + "type": "string" + }, + "name": { + "$ref": "#/definitions/name" + }, + "namespace": { + "$ref": "#/definitions/namespace" + }, "values": { "$ref": "#/definitions/types" } - }, - "required": [ - "type", - "values" - ] + } }, - "avroFixed": { - "title": "Fixed", - "description": "A fixed sized array of bytes", + "avroRecord": { + "title": "Record", + "description": "A Record", "type": "object", + "required": [ + "type", + "name", + "fields" + ], "properties": { "type": { "type": "string", - "const": "fixed" - }, - "name": { - "$ref": "#/definitions/name" + "const": "record" }, - "namespace": { - "$ref": "#/definitions/namespace" + "aliases": { + "type": "array", + "items": { + "$ref": "#/definitions/name" + } }, "doc": { "type": "string" }, - "aliases": { + "fields": { "type": "array", "items": { - "$ref": "#/definitions/name" + "$ref": "#/definitions/avroField" } }, - "size": { - "type": "number" + "name": { + "$ref": "#/definitions/name" + }, + "namespace": { + "$ref": "#/definitions/namespace" + } + } + }, + "avroSchema": { + "title": "Avro Schema", + "description": "Root Schema", + "oneOf": [ + { + "$ref": "#/definitions/types" } - }, - "required": [ - "type", - "name", - "size" ] }, + "avroUnion": { + "title": "Union", + "description": "A Union of types", + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/definitions/avroSchema" + } + }, + "customTypeReference": { + "title": "Custom Type", + "description": "Reference to a ComplexType", + "type": "string", + "not": { + "$ref": "#/definitions/primitiveType" + }, + "pattern": "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$" + }, "name": { "type": "string", "pattern": "^[A-Za-z_][A-Za-z0-9_]*$" @@ -305,13 +251,67 @@ "namespace": { "type": "string", "pattern": "^([A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*)*$" + }, + "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", + "required": [ + "type" + ], + "properties": { + "type": { + "$ref": "#/definitions/primitiveType" + } + } + }, + "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" + } + ] } - }, - "description": "Json-Schema definition for Avro AVSC files.", - "oneOf": [ - { - "$ref": "#/definitions/avroSchema" - } - ], - "title": "Avro Schema Definition" -} \ No newline at end of file + } +} diff --git a/common/openapiSchema_3_0.json b/common/openapiSchema_3_0.json index a4b11b8b..80fa3412 100644 --- a/common/openapiSchema_3_0.json +++ b/common/openapiSchema_3_0.json @@ -2,154 +2,26 @@ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "http://asyncapi.com/definitions/3.0.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 + "description": { + "type": "string" }, - "minProperties": { - "type": "integer", - "minimum": 0, - "default": 0 + "deprecated": { + "default": false, + "type": "boolean" }, - "required": { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "uniqueItems": true + "readOnly": { + "default": false, + "type": "boolean" }, - "enum": { - "type": "array", - "items": true, - "minItems": 1, - "uniqueItems": false + "writeOnly": { + "default": false, + "type": "boolean" }, + "default": true, "type": { "type": "string", "enum": [ @@ -161,15 +33,11 @@ "string" ] }, - "not": { - "oneOf": [ - { - "$ref": "#" - }, - { - "$ref": "#/definitions/Reference" - } - ] + "enum": { + "type": "array", + "minItems": 1, + "uniqueItems": false, + "items": true }, "allOf": { "type": "array", @@ -184,7 +52,7 @@ ] } }, - "oneOf": { + "anyOf": { "type": "array", "items": { "oneOf": [ @@ -197,7 +65,7 @@ ] } }, - "anyOf": { + "oneOf": { "type": "array", "items": { "oneOf": [ @@ -210,6 +78,63 @@ ] } }, + "not": { + "oneOf": [ + { + "$ref": "#" + }, + { + "$ref": "#/definitions/Reference" + } + ] + }, + "exclusiveMaximum": { + "default": false, + "type": "boolean" + }, + "maximum": { + "type": "number" + }, + "exclusiveMinimum": { + "default": false, + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "multipleOf": { + "type": "number", + "exclusiveMinimum": 0 + }, + "pattern": { + "type": "string", + "format": "regex" + }, + "format": { + "type": "string" + }, + "maxLength": { + "type": "integer", + "minimum": 0 + }, + "minLength": { + "default": 0, + "type": "integer", + "minimum": 0 + }, + "maxItems": { + "type": "integer", + "minimum": 0 + }, + "minItems": { + "default": 0, + "type": "integer", + "minimum": 0 + }, + "uniqueItems": { + "default": false, + "type": "boolean" + }, "items": { "oneOf": [ { @@ -220,6 +145,23 @@ } ] }, + "required": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "maxProperties": { + "type": "integer", + "minimum": 0 + }, + "minProperties": { + "default": 0, + "type": "integer", + "minimum": 0 + }, "properties": { "type": "object", "additionalProperties": { @@ -234,6 +176,7 @@ } }, "additionalProperties": { + "default": true, "oneOf": [ { "$ref": "#" @@ -244,38 +187,18 @@ { "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 + "nullable": { + "default": false, + "type": "boolean" }, "xml": { "$ref": "#/definitions/XML" @@ -284,5 +207,82 @@ "patternProperties": { "^x-": true }, - "additionalProperties": false -} \ No newline at end of file + "additionalProperties": false, + "definitions": { + "Discriminator": { + "type": "object", + "required": [ + "propertyName" + ], + "properties": { + "mapping": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "propertyName": { + "type": "string" + } + } + }, + "ExternalDocumentation": { + "type": "object", + "required": [ + "url" + ], + "properties": { + "description": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri-reference" + } + }, + "patternProperties": { + "^x-": {} + }, + "additionalProperties": false + }, + "Reference": { + "type": "object", + "required": [ + "$ref" + ], + "patternProperties": { + "^\\$ref$": { + "type": "string", + "format": "uri-reference" + } + } + }, + "XML": { + "type": "object", + "properties": { + "attribute": { + "default": false, + "type": "boolean" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string", + "format": "uri" + }, + "prefix": { + "type": "string" + }, + "wrapped": { + "default": false, + "type": "boolean" + } + }, + "patternProperties": { + "^x-": {} + }, + "additionalProperties": false + } + } +} diff --git a/definitions/1.0.0/APIKeyHTTPSecurityScheme.json b/definitions/1.0.0/APIKeyHTTPSecurityScheme.json index 20fc3540..2e5332a4 100644 --- a/definitions/1.0.0/APIKeyHTTPSecurityScheme.json +++ b/definitions/1.0.0/APIKeyHTTPSecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.0.0/APIKeyHTTPSecurityScheme.json", "type": "object", "required": [ "type", @@ -6,15 +8,15 @@ "in" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "httpApiKey" ] }, - "name": { - "type": "string" - }, "in": { "type": "string", "enum": [ @@ -23,14 +25,12 @@ "cookie" ] }, - "description": { + "name": { "type": "string" } }, "patternProperties": { "^x-": {} }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.0.0/APIKeyHTTPSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/1.0.0/BearerHTTPSecurityScheme.json b/definitions/1.0.0/BearerHTTPSecurityScheme.json index 32d987ea..ac6a8840 100644 --- a/definitions/1.0.0/BearerHTTPSecurityScheme.json +++ b/definitions/1.0.0/BearerHTTPSecurityScheme.json @@ -1,33 +1,33 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.0.0/BearerHTTPSecurityScheme.json", "type": "object", "required": [ "type", "scheme" ], "properties": { - "scheme": { + "description": { + "type": "string" + }, + "type": { "type": "string", "enum": [ - "bearer" + "http" ] }, "bearerFormat": { "type": "string" }, - "type": { + "scheme": { "type": "string", "enum": [ - "http" + "bearer" ] - }, - "description": { - "type": "string" } }, "patternProperties": { "^x-": {} }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.0.0/BearerHTTPSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/1.0.0/HTTPSecurityScheme.json b/definitions/1.0.0/HTTPSecurityScheme.json index ac46c12c..b64974d8 100644 --- a/definitions/1.0.0/HTTPSecurityScheme.json +++ b/definitions/1.0.0/HTTPSecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.0.0/HTTPSecurityScheme.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/1.0.0/NonBearerHTTPSecurityScheme.json" @@ -9,7 +11,5 @@ { "$ref": "http://asyncapi.com/definitions/1.0.0/APIKeyHTTPSecurityScheme.json" } - ], - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.0.0/HTTPSecurityScheme.json" -} \ No newline at end of file + ] +} diff --git a/definitions/1.0.0/NonBearerHTTPSecurityScheme.json b/definitions/1.0.0/NonBearerHTTPSecurityScheme.json index 147034c0..c5f9047c 100644 --- a/definitions/1.0.0/NonBearerHTTPSecurityScheme.json +++ b/definitions/1.0.0/NonBearerHTTPSecurityScheme.json @@ -1,4 +1,7 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.0.0/NonBearerHTTPSecurityScheme.json", + "type": "object", "not": { "type": "object", "properties": { @@ -10,15 +13,11 @@ } } }, - "type": "object", "required": [ "scheme", "type" ], "properties": { - "scheme": { - "type": "string" - }, "description": { "type": "string" }, @@ -27,12 +26,13 @@ "enum": [ "http" ] + }, + "scheme": { + "type": "string" } }, "patternProperties": { "^x-": {} }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.0.0/NonBearerHTTPSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/1.0.0/Reference.json b/definitions/1.0.0/Reference.json index 4f88fb60..6ee63845 100644 --- a/definitions/1.0.0/Reference.json +++ b/definitions/1.0.0/Reference.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.0.0/Reference.json", "type": "object", "required": [ "$ref" @@ -8,7 +10,5 @@ "type": "string", "format": "uri" } - }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.0.0/Reference.json" -} \ No newline at end of file + } +} diff --git a/definitions/1.0.0/SecurityRequirement.json b/definitions/1.0.0/SecurityRequirement.json index 89d77b55..65805e95 100644 --- a/definitions/1.0.0/SecurityRequirement.json +++ b/definitions/1.0.0/SecurityRequirement.json @@ -1,11 +1,11 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.0.0/SecurityRequirement.json", "type": "object", "additionalProperties": { "type": "array", "items": { "type": "string" } - }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.0.0/SecurityRequirement.json" -} \ No newline at end of file + } +} diff --git a/definitions/1.0.0/SecurityScheme.json b/definitions/1.0.0/SecurityScheme.json index 053152bd..2ccde2f6 100644 --- a/definitions/1.0.0/SecurityScheme.json +++ b/definitions/1.0.0/SecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.0.0/SecurityScheme.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/1.0.0/userPassword.json" @@ -18,7 +20,5 @@ { "$ref": "http://asyncapi.com/definitions/1.0.0/HTTPSecurityScheme.json" } - ], - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.0.0/SecurityScheme.json" -} \ No newline at end of file + ] +} diff --git a/definitions/1.0.0/X509.json b/definitions/1.0.0/X509.json index e3f74018..03fdc80a 100644 --- a/definitions/1.0.0/X509.json +++ b/definitions/1.0.0/X509.json @@ -1,23 +1,23 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.0.0/X509.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "X509" ] - }, - "description": { - "type": "string" } }, "patternProperties": { "^x-": {} }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.0.0/X509.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/1.0.0/apiKey.json b/definitions/1.0.0/apiKey.json index 99bea62e..2f1450a0 100644 --- a/definitions/1.0.0/apiKey.json +++ b/definitions/1.0.0/apiKey.json @@ -1,10 +1,15 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.0.0/apiKey.json", "type": "object", "required": [ "type", "in" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ @@ -17,15 +22,10 @@ "user", "password" ] - }, - "description": { - "type": "string" } }, "patternProperties": { "^x-": {} }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.0.0/apiKey.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/1.0.0/asymmetricEncryption.json b/definitions/1.0.0/asymmetricEncryption.json index 2b00561d..da456feb 100644 --- a/definitions/1.0.0/asymmetricEncryption.json +++ b/definitions/1.0.0/asymmetricEncryption.json @@ -1,23 +1,23 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.0.0/asymmetricEncryption.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "asymmetricEncryption" ] - }, - "description": { - "type": "string" } }, "patternProperties": { "^x-": {} }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.0.0/asymmetricEncryption.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/1.0.0/asyncapi.json b/definitions/1.0.0/asyncapi.json index c70c456c..79425348 100644 --- a/definitions/1.0.0/asyncapi.json +++ b/definitions/1.0.0/asyncapi.json @@ -1,64 +1,64 @@ { - "title": "AsyncAPI 1.0 schema.", - "id": "http://asyncapi.com/definitions/1.0.0/asyncapi.json", "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.0.0/asyncapi.json", + "title": "AsyncAPI 1.0 schema.", "type": "object", "required": [ "asyncapi", "info", "topics" ], - "additionalProperties": false, - "patternProperties": { - "^x-": { - "$ref": "http://asyncapi.com/definitions/1.0.0/vendorExtension.json" - } - }, "properties": { "asyncapi": { + "description": "The AsyncAPI specification version of this document.", "type": "string", "enum": [ "1.0.0" - ], - "description": "The AsyncAPI specification version of this document." + ] + }, + "baseTopic": { + "description": "The base topic to the API. Example: 'hitch'.", + "default": "", + "type": "string", + "pattern": "^[^/.]" + }, + "components": { + "$ref": "http://asyncapi.com/definitions/1.0.0/components.json" + }, + "externalDocs": { + "$ref": "http://asyncapi.com/definitions/1.0.0/externalDocs.json" }, "info": { "$ref": "http://asyncapi.com/definitions/1.0.0/info.json" }, - "baseTopic": { - "type": "string", - "pattern": "^[^/.]", - "description": "The base topic to the API. Example: 'hitch'.", - "default": "" + "security": { + "type": "array", + "items": { + "$ref": "http://asyncapi.com/definitions/1.0.0/SecurityRequirement.json" + } }, "servers": { "type": "array", + "uniqueItems": true, "items": { "$ref": "http://asyncapi.com/definitions/1.0.0/server.json" - }, - "uniqueItems": true - }, - "topics": { - "$ref": "http://asyncapi.com/definitions/1.0.0/topics.json" - }, - "components": { - "$ref": "http://asyncapi.com/definitions/1.0.0/components.json" + } }, "tags": { "type": "array", + "uniqueItems": true, "items": { "$ref": "http://asyncapi.com/definitions/1.0.0/tag.json" - }, - "uniqueItems": true - }, - "security": { - "type": "array", - "items": { - "$ref": "http://asyncapi.com/definitions/1.0.0/SecurityRequirement.json" } }, - "externalDocs": { - "$ref": "http://asyncapi.com/definitions/1.0.0/externalDocs.json" + "topics": { + "$ref": "http://asyncapi.com/definitions/1.0.0/topics.json" } - } + }, + "patternProperties": { + "^x-": { + "$ref": "http://asyncapi.com/definitions/1.0.0/vendorExtension.json" + } + }, + "additionalProperties": false } diff --git a/definitions/1.0.0/components.json b/definitions/1.0.0/components.json index a045c7d1..c59588bf 100644 --- a/definitions/1.0.0/components.json +++ b/definitions/1.0.0/components.json @@ -1,14 +1,15 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.0.0/components.json", "description": "An object to hold a set of reusable objects for different aspects of the AsyncAPI Specification.", - "additionalProperties": false, + "type": "object", "properties": { - "schemas": { - "$ref": "http://asyncapi.com/definitions/1.0.0/schemas.json" - }, "messages": { "$ref": "http://asyncapi.com/definitions/1.0.0/messages.json" }, + "schemas": { + "$ref": "http://asyncapi.com/definitions/1.0.0/schemas.json" + }, "securitySchemes": { "type": "object", "patternProperties": { @@ -25,6 +26,5 @@ } } }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.0.0/components.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/1.0.0/contact.json b/definitions/1.0.0/contact.json index 6930f4a9..2ffdb7d0 100644 --- a/definitions/1.0.0/contact.json +++ b/definitions/1.0.0/contact.json @@ -1,21 +1,22 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.0.0/contact.json", "description": "Contact information for the owners of the API.", - "additionalProperties": false, + "type": "object", "properties": { - "name": { + "email": { + "description": "The email address of the contact person/organization.", "type": "string", - "description": "The identifying name of the contact person/organization." + "format": "email" + }, + "name": { + "description": "The identifying name of the contact person/organization.", + "type": "string" }, "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" + "format": "uri" } }, "patternProperties": { @@ -23,6 +24,5 @@ "$ref": "http://asyncapi.com/definitions/1.0.0/vendorExtension.json" } }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.0.0/contact.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/1.0.0/externalDocs.json b/definitions/1.0.0/externalDocs.json index 74f17880..5c723d75 100644 --- a/definitions/1.0.0/externalDocs.json +++ b/definitions/1.0.0/externalDocs.json @@ -1,7 +1,8 @@ { - "type": "object", - "additionalProperties": false, + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.0.0/externalDocs.json", "description": "information about external documentation", + "type": "object", "required": [ "url" ], @@ -19,6 +20,5 @@ "$ref": "http://asyncapi.com/definitions/1.0.0/vendorExtension.json" } }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.0.0/externalDocs.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/1.0.0/info.json b/definitions/1.0.0/info.json index dcf512ce..92046a4f 100644 --- a/definitions/1.0.0/info.json +++ b/definitions/1.0.0/info.json @@ -1,41 +1,41 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.0.0/info.json", "description": "General information about the API.", + "type": "object", "required": [ "version", "title" ], - "additionalProperties": false, - "patternProperties": { - "^x-": { - "$ref": "http://asyncapi.com/definitions/1.0.0/vendorExtension.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": "A unique and precise title of the API.", + "type": "string" }, "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" + "description": "A longer description of the API. Should be different from the title. CommonMark is allowed.", + "type": "string" }, "contact": { "$ref": "http://asyncapi.com/definitions/1.0.0/contact.json" }, "license": { "$ref": "http://asyncapi.com/definitions/1.0.0/license.json" + }, + "termsOfService": { + "description": "A URL to the Terms of Service for the API. MUST be in the format of a URL.", + "type": "string", + "format": "uri" + }, + "version": { + "description": "A semantic version number of the API.", + "type": "string" } }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.0.0/info.json" -} \ No newline at end of file + "patternProperties": { + "^x-": { + "$ref": "http://asyncapi.com/definitions/1.0.0/vendorExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/1.0.0/license.json b/definitions/1.0.0/license.json index 13aa0e06..4398495b 100644 --- a/definitions/1.0.0/license.json +++ b/definitions/1.0.0/license.json @@ -1,17 +1,18 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.0.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." + "description": "The name of the license type. It's encouraged to use an OSI compatible license.", + "type": "string" }, "url": { - "type": "string", "description": "The URL pointing to the license.", + "type": "string", "format": "uri" } }, @@ -20,6 +21,5 @@ "$ref": "http://asyncapi.com/definitions/1.0.0/vendorExtension.json" } }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.0.0/license.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/1.0.0/message.json b/definitions/1.0.0/message.json index 439e6869..e204cf2e 100644 --- a/definitions/1.0.0/message.json +++ b/definitions/1.0.0/message.json @@ -1,45 +1,45 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.0.0/message.json", "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-": { - "$ref": "http://asyncapi.com/definitions/1.0.0/vendorExtension.json" - } - }, "properties": { + "description": { + "description": "A longer description of the message. CommonMark is allowed.", + "type": "string" + }, + "deprecated": { + "default": false, + "type": "boolean" + }, "$ref": { "type": "string" }, + "example": {}, + "externalDocs": { + "$ref": "http://asyncapi.com/definitions/1.0.0/externalDocs.json" + }, "headers": { "$ref": "http://asyncapi.com/definitions/1.0.0/schema.json" }, "payload": { "$ref": "http://asyncapi.com/definitions/1.0.0/schema.json" }, + "summary": { + "description": "A brief summary of the message.", + "type": "string" + }, "tags": { "type": "array", + "uniqueItems": true, "items": { "$ref": "http://asyncapi.com/definitions/1.0.0/tag.json" - }, - "uniqueItems": true - }, - "summary": { - "type": "string", - "description": "A brief summary of the message." - }, - "description": { - "type": "string", - "description": "A longer description of the message. CommonMark is allowed." - }, - "externalDocs": { - "$ref": "http://asyncapi.com/definitions/1.0.0/externalDocs.json" - }, - "deprecated": { - "type": "boolean", - "default": false - }, - "example": {} + } + } }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.0.0/message.json" -} \ No newline at end of file + "patternProperties": { + "^x-": { + "$ref": "http://asyncapi.com/definitions/1.0.0/vendorExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/1.0.0/messages.json b/definitions/1.0.0/messages.json index ec5f9c03..ced8ccb6 100644 --- a/definitions/1.0.0/messages.json +++ b/definitions/1.0.0/messages.json @@ -1,9 +1,9 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.0.0/messages.json", + "description": "JSON objects describing the messages being consumed and produced by the API.", "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/1.0.0/message.json" - }, - "description": "JSON objects describing the messages being consumed and produced by the API.", - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.0.0/messages.json" -} \ No newline at end of file + } +} diff --git a/definitions/1.0.0/schema.json b/definitions/1.0.0/schema.json index 22ba46c1..5603b90a 100644 --- a/definitions/1.0.0/schema.json +++ b/definitions/1.0.0/schema.json @@ -1,51 +1,65 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.0.0/schema.json", "description": "A deterministic version of a JSON Schema object.", - "patternProperties": { - "^x-": { - "$ref": "http://asyncapi.com/definitions/1.0.0/vendorExtension.json" - } - }, + "type": "object", "properties": { - "$ref": { - "type": "string" - }, - "format": { - "type": "string" - }, "title": { "$ref": "http://json-schema.org/draft-04/schema#/properties/title" }, "description": { "$ref": "http://json-schema.org/draft-04/schema#/properties/description" }, + "readOnly": { + "default": false, + "type": "boolean" + }, "default": { "$ref": "http://json-schema.org/draft-04/schema#/properties/default" }, - "multipleOf": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/multipleOf" + "$ref": { + "type": "string" }, - "maximum": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/maximum" + "type": { + "$ref": "http://json-schema.org/draft-04/schema#/properties/type" + }, + "enum": { + "$ref": "http://json-schema.org/draft-04/schema#/properties/enum" + }, + "allOf": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "http://asyncapi.com/definitions/1.0.0/schema.json" + } }, "exclusiveMaximum": { "$ref": "http://json-schema.org/draft-04/schema#/properties/exclusiveMaximum" }, - "minimum": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/minimum" + "maximum": { + "$ref": "http://json-schema.org/draft-04/schema#/properties/maximum" }, "exclusiveMinimum": { "$ref": "http://json-schema.org/draft-04/schema#/properties/exclusiveMinimum" }, + "minimum": { + "$ref": "http://json-schema.org/draft-04/schema#/properties/minimum" + }, + "multipleOf": { + "$ref": "http://json-schema.org/draft-04/schema#/properties/multipleOf" + }, + "pattern": { + "$ref": "http://json-schema.org/draft-04/schema#/properties/pattern" + }, + "format": { + "type": "string" + }, "maxLength": { "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger" }, "minLength": { "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0" }, - "pattern": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/pattern" - }, "maxItems": { "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger" }, @@ -55,33 +69,8 @@ "uniqueItems": { "$ref": "http://json-schema.org/draft-04/schema#/properties/uniqueItems" }, - "maxProperties": { - "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger" - }, - "minProperties": { - "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0" - }, - "required": { - "$ref": "http://json-schema.org/draft-04/schema#/definitions/stringArray" - }, - "enum": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/enum" - }, - "additionalProperties": { - "anyOf": [ - { - "$ref": "http://asyncapi.com/definitions/1.0.0/schema.json" - }, - { - "type": "boolean" - } - ], - "default": {} - }, - "type": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/type" - }, "items": { + "default": {}, "anyOf": [ { "$ref": "http://asyncapi.com/definitions/1.0.0/schema.json" @@ -93,39 +82,50 @@ "$ref": "http://asyncapi.com/definitions/1.0.0/schema.json" } } - ], - "default": {} + ] }, - "allOf": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "http://asyncapi.com/definitions/1.0.0/schema.json" - } + "required": { + "$ref": "http://json-schema.org/draft-04/schema#/definitions/stringArray" + }, + "maxProperties": { + "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger" + }, + "minProperties": { + "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0" }, "properties": { + "default": {}, "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/1.0.0/schema.json" - }, - "default": {} + } + }, + "additionalProperties": { + "default": {}, + "anyOf": [ + { + "$ref": "http://asyncapi.com/definitions/1.0.0/schema.json" + }, + { + "type": "boolean" + } + ] }, "discriminator": { "type": "string" }, - "readOnly": { - "type": "boolean", - "default": false - }, - "xml": { - "$ref": "http://asyncapi.com/definitions/1.0.0/xml.json" - }, + "example": {}, "externalDocs": { "$ref": "http://asyncapi.com/definitions/1.0.0/externalDocs.json" }, - "example": {} + "xml": { + "$ref": "http://asyncapi.com/definitions/1.0.0/xml.json" + } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.0.0/schema.json" -} \ No newline at end of file + "patternProperties": { + "^x-": { + "$ref": "http://asyncapi.com/definitions/1.0.0/vendorExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/1.0.0/schemas.json b/definitions/1.0.0/schemas.json index fe10d55c..e8d0b483 100644 --- a/definitions/1.0.0/schemas.json +++ b/definitions/1.0.0/schemas.json @@ -1,9 +1,9 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.0.0/schemas.json", + "description": "JSON objects describing schemas the API uses.", "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/1.0.0/schema.json" - }, - "description": "JSON objects describing schemas the API uses.", - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.0.0/schemas.json" -} \ No newline at end of file + } +} diff --git a/definitions/1.0.0/server.json b/definitions/1.0.0/server.json index b00f1b85..87ac9667 100644 --- a/definitions/1.0.0/server.json +++ b/definitions/1.0.0/server.json @@ -1,26 +1,19 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.0.0/server.json", "description": "An object representing a Server.", + "type": "object", "required": [ "url", "scheme" ], - "additionalProperties": false, - "patternProperties": { - "^x-": { - "$ref": "http://asyncapi.com/definitions/1.0.0/vendorExtension.json" - } - }, "properties": { - "url": { - "type": "string" - }, "description": { "type": "string" }, "scheme": { - "type": "string", "description": "The transfer protocol.", + "type": "string", "enum": [ "kafka", "kafka-secure", @@ -38,10 +31,17 @@ "schemeVersion": { "type": "string" }, + "url": { + "type": "string" + }, "variables": { "$ref": "http://asyncapi.com/definitions/1.0.0/serverVariables.json" } }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.0.0/server.json" -} \ No newline at end of file + "patternProperties": { + "^x-": { + "$ref": "http://asyncapi.com/definitions/1.0.0/vendorExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/1.0.0/serverVariable.json b/definitions/1.0.0/serverVariable.json index 79115616..5ae647f2 100644 --- a/definitions/1.0.0/serverVariable.json +++ b/definitions/1.0.0/serverVariable.json @@ -1,28 +1,28 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.0.0/serverVariable.json", "description": "An object representing a Server Variable for server URL template substitution.", + "type": "object", "minProperties": 1, - "additionalProperties": false, - "patternProperties": { - "^x-": { - "$ref": "http://asyncapi.com/definitions/1.0.0/vendorExtension.json" - } - }, "properties": { - "enum": { - "type": "array", - "items": { - "type": "string" - }, - "uniqueItems": true + "description": { + "type": "string" }, "default": { "type": "string" }, - "description": { - "type": "string" + "enum": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } } }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.0.0/serverVariable.json" -} \ No newline at end of file + "patternProperties": { + "^x-": { + "$ref": "http://asyncapi.com/definitions/1.0.0/vendorExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/1.0.0/serverVariables.json b/definitions/1.0.0/serverVariables.json index 3ce85d16..9098d5bf 100644 --- a/definitions/1.0.0/serverVariables.json +++ b/definitions/1.0.0/serverVariables.json @@ -1,8 +1,8 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.0.0/serverVariables.json", "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/1.0.0/serverVariable.json" - }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.0.0/serverVariables.json" -} \ No newline at end of file + } +} diff --git a/definitions/1.0.0/symmetricEncryption.json b/definitions/1.0.0/symmetricEncryption.json index 59594065..88b4df9d 100644 --- a/definitions/1.0.0/symmetricEncryption.json +++ b/definitions/1.0.0/symmetricEncryption.json @@ -1,23 +1,23 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.0.0/symmetricEncryption.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "symmetricEncryption" ] - }, - "description": { - "type": "string" } }, "patternProperties": { "^x-": {} }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.0.0/symmetricEncryption.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/1.0.0/tag.json b/definitions/1.0.0/tag.json index 15da82c2..2df3cf1f 100644 --- a/definitions/1.0.0/tag.json +++ b/definitions/1.0.0/tag.json @@ -1,18 +1,19 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.0.0/tag.json", "type": "object", - "additionalProperties": false, "required": [ "name" ], "properties": { - "name": { - "type": "string" - }, "description": { "type": "string" }, "externalDocs": { "$ref": "http://asyncapi.com/definitions/1.0.0/externalDocs.json" + }, + "name": { + "type": "string" } }, "patternProperties": { @@ -20,6 +21,5 @@ "$ref": "http://asyncapi.com/definitions/1.0.0/vendorExtension.json" } }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.0.0/tag.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/1.0.0/topicItem.json b/definitions/1.0.0/topicItem.json index 3386f453..33490a36 100644 --- a/definitions/1.0.0/topicItem.json +++ b/definitions/1.0.0/topicItem.json @@ -1,13 +1,13 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.0.0/topicItem.json", "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-": { - "$ref": "http://asyncapi.com/definitions/1.0.0/vendorExtension.json" - } - }, "minProperties": 1, "properties": { + "deprecated": { + "default": false, + "type": "boolean" + }, "$ref": { "type": "string" }, @@ -16,12 +16,12 @@ }, "subscribe": { "$ref": "http://asyncapi.com/definitions/1.0.0/message.json" - }, - "deprecated": { - "type": "boolean", - "default": false } }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.0.0/topicItem.json" -} \ No newline at end of file + "patternProperties": { + "^x-": { + "$ref": "http://asyncapi.com/definitions/1.0.0/vendorExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/1.0.0/topics.json b/definitions/1.0.0/topics.json index a2049c68..779bdf5b 100644 --- a/definitions/1.0.0/topics.json +++ b/definitions/1.0.0/topics.json @@ -1,15 +1,15 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.0.0/topics.json", "description": "Relative paths to the individual topics. They must be relative to the 'baseTopic'.", + "type": "object", "patternProperties": { - "^x-": { - "$ref": "http://asyncapi.com/definitions/1.0.0/vendorExtension.json" - }, "^[^.]": { "$ref": "http://asyncapi.com/definitions/1.0.0/topicItem.json" + }, + "^x-": { + "$ref": "http://asyncapi.com/definitions/1.0.0/vendorExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.0.0/topics.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/1.0.0/userPassword.json b/definitions/1.0.0/userPassword.json index 983e2100..7d78318a 100644 --- a/definitions/1.0.0/userPassword.json +++ b/definitions/1.0.0/userPassword.json @@ -1,23 +1,23 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.0.0/userPassword.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "userPassword" ] - }, - "description": { - "type": "string" } }, "patternProperties": { "^x-": {} }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.0.0/userPassword.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/1.0.0/vendorExtension.json b/definitions/1.0.0/vendorExtension.json index 9950d0f1..bc78ca18 100644 --- a/definitions/1.0.0/vendorExtension.json +++ b/definitions/1.0.0/vendorExtension.json @@ -1,7 +1,7 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.0.0/vendorExtension.json", "description": "Any property starting with x- is valid.", - "additionalProperties": true, "additionalItems": true, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.0.0/vendorExtension.json" -} \ No newline at end of file + "additionalProperties": true +} diff --git a/definitions/1.0.0/xml.json b/definitions/1.0.0/xml.json index 2890dfea..6e8740cc 100644 --- a/definitions/1.0.0/xml.json +++ b/definitions/1.0.0/xml.json @@ -1,7 +1,12 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.0.0/xml.json", "type": "object", - "additionalProperties": false, "properties": { + "attribute": { + "default": false, + "type": "boolean" + }, "name": { "type": "string" }, @@ -11,15 +16,10 @@ "prefix": { "type": "string" }, - "attribute": { - "type": "boolean", - "default": false - }, "wrapped": { - "type": "boolean", - "default": false + "default": false, + "type": "boolean" } }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.0.0/xml.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/1.1.0/APIKeyHTTPSecurityScheme.json b/definitions/1.1.0/APIKeyHTTPSecurityScheme.json index e3362b8e..430a73d4 100644 --- a/definitions/1.1.0/APIKeyHTTPSecurityScheme.json +++ b/definitions/1.1.0/APIKeyHTTPSecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.1.0/APIKeyHTTPSecurityScheme.json", "type": "object", "required": [ "type", @@ -6,15 +8,15 @@ "in" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "httpApiKey" ] }, - "name": { - "type": "string" - }, "in": { "type": "string", "enum": [ @@ -23,14 +25,12 @@ "cookie" ] }, - "description": { + "name": { "type": "string" } }, "patternProperties": { "^x-": {} }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.1.0/APIKeyHTTPSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/1.1.0/BearerHTTPSecurityScheme.json b/definitions/1.1.0/BearerHTTPSecurityScheme.json index 8e70f16e..43f775d0 100644 --- a/definitions/1.1.0/BearerHTTPSecurityScheme.json +++ b/definitions/1.1.0/BearerHTTPSecurityScheme.json @@ -1,33 +1,33 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.1.0/BearerHTTPSecurityScheme.json", "type": "object", "required": [ "type", "scheme" ], "properties": { - "scheme": { + "description": { + "type": "string" + }, + "type": { "type": "string", "enum": [ - "bearer" + "http" ] }, "bearerFormat": { "type": "string" }, - "type": { + "scheme": { "type": "string", "enum": [ - "http" + "bearer" ] - }, - "description": { - "type": "string" } }, "patternProperties": { "^x-": {} }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.1.0/BearerHTTPSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/1.1.0/HTTPSecurityScheme.json b/definitions/1.1.0/HTTPSecurityScheme.json index c9e596a0..c2f0b277 100644 --- a/definitions/1.1.0/HTTPSecurityScheme.json +++ b/definitions/1.1.0/HTTPSecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.1.0/HTTPSecurityScheme.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/1.1.0/NonBearerHTTPSecurityScheme.json" @@ -9,7 +11,5 @@ { "$ref": "http://asyncapi.com/definitions/1.1.0/APIKeyHTTPSecurityScheme.json" } - ], - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.1.0/HTTPSecurityScheme.json" -} \ No newline at end of file + ] +} diff --git a/definitions/1.1.0/NonBearerHTTPSecurityScheme.json b/definitions/1.1.0/NonBearerHTTPSecurityScheme.json index 8beec801..5fedfcb6 100644 --- a/definitions/1.1.0/NonBearerHTTPSecurityScheme.json +++ b/definitions/1.1.0/NonBearerHTTPSecurityScheme.json @@ -1,4 +1,7 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.1.0/NonBearerHTTPSecurityScheme.json", + "type": "object", "not": { "type": "object", "properties": { @@ -10,15 +13,11 @@ } } }, - "type": "object", "required": [ "scheme", "type" ], "properties": { - "scheme": { - "type": "string" - }, "description": { "type": "string" }, @@ -27,12 +26,13 @@ "enum": [ "http" ] + }, + "scheme": { + "type": "string" } }, "patternProperties": { "^x-": {} }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.1.0/NonBearerHTTPSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/1.1.0/Reference.json b/definitions/1.1.0/Reference.json index 1d0110fd..4723d201 100644 --- a/definitions/1.1.0/Reference.json +++ b/definitions/1.1.0/Reference.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.1.0/Reference.json", "type": "object", "required": [ "$ref" @@ -8,7 +10,5 @@ "type": "string", "format": "uri" } - }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.1.0/Reference.json" -} \ No newline at end of file + } +} diff --git a/definitions/1.1.0/SecurityRequirement.json b/definitions/1.1.0/SecurityRequirement.json index e4856fb4..0ee21452 100644 --- a/definitions/1.1.0/SecurityRequirement.json +++ b/definitions/1.1.0/SecurityRequirement.json @@ -1,11 +1,11 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.1.0/SecurityRequirement.json", "type": "object", "additionalProperties": { "type": "array", "items": { "type": "string" } - }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.1.0/SecurityRequirement.json" -} \ No newline at end of file + } +} diff --git a/definitions/1.1.0/SecurityScheme.json b/definitions/1.1.0/SecurityScheme.json index 777ef51e..41690582 100644 --- a/definitions/1.1.0/SecurityScheme.json +++ b/definitions/1.1.0/SecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.1.0/SecurityScheme.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/1.1.0/userPassword.json" @@ -18,7 +20,5 @@ { "$ref": "http://asyncapi.com/definitions/1.1.0/HTTPSecurityScheme.json" } - ], - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.1.0/SecurityScheme.json" -} \ No newline at end of file + ] +} diff --git a/definitions/1.1.0/X509.json b/definitions/1.1.0/X509.json index 7486d9aa..5eef9ff7 100644 --- a/definitions/1.1.0/X509.json +++ b/definitions/1.1.0/X509.json @@ -1,23 +1,23 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.1.0/X509.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "X509" ] - }, - "description": { - "type": "string" } }, "patternProperties": { "^x-": {} }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.1.0/X509.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/1.1.0/apiKey.json b/definitions/1.1.0/apiKey.json index 65d51ac4..7fce81a0 100644 --- a/definitions/1.1.0/apiKey.json +++ b/definitions/1.1.0/apiKey.json @@ -1,10 +1,15 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.1.0/apiKey.json", "type": "object", "required": [ "type", "in" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ @@ -17,15 +22,10 @@ "user", "password" ] - }, - "description": { - "type": "string" } }, "patternProperties": { "^x-": {} }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.1.0/apiKey.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/1.1.0/asymmetricEncryption.json b/definitions/1.1.0/asymmetricEncryption.json index 8781b30c..d0284b07 100644 --- a/definitions/1.1.0/asymmetricEncryption.json +++ b/definitions/1.1.0/asymmetricEncryption.json @@ -1,23 +1,23 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.1.0/asymmetricEncryption.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "asymmetricEncryption" ] - }, - "description": { - "type": "string" } }, "patternProperties": { "^x-": {} }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.1.0/asymmetricEncryption.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/1.1.0/asyncapi.json b/definitions/1.1.0/asyncapi.json index 566c9225..e8bc6c82 100644 --- a/definitions/1.1.0/asyncapi.json +++ b/definitions/1.1.0/asyncapi.json @@ -1,65 +1,65 @@ { - "title": "AsyncAPI 1.1.0 schema.", - "id": "http://asyncapi.com/definitions/1.1.0/asyncapi.json", "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.1.0/asyncapi.json", + "title": "AsyncAPI 1.1.0 schema.", "type": "object", "required": [ "asyncapi", "info", "topics" ], - "additionalProperties": false, - "patternProperties": { - "^x-": { - "$ref": "http://asyncapi.com/definitions/1.1.0/vendorExtension.json" - } - }, "properties": { "asyncapi": { + "description": "The AsyncAPI specification version of this document.", "type": "string", "enum": [ "1.0.0", "1.1.0" - ], - "description": "The AsyncAPI specification version of this document." + ] + }, + "baseTopic": { + "description": "The base topic to the API. Example: 'hitch'.", + "default": "", + "type": "string", + "pattern": "^[^/.]" + }, + "components": { + "$ref": "http://asyncapi.com/definitions/1.1.0/components.json" + }, + "externalDocs": { + "$ref": "http://asyncapi.com/definitions/1.1.0/externalDocs.json" }, "info": { "$ref": "http://asyncapi.com/definitions/1.1.0/info.json" }, - "baseTopic": { - "type": "string", - "pattern": "^[^/.]", - "description": "The base topic to the API. Example: 'hitch'.", - "default": "" + "security": { + "type": "array", + "items": { + "$ref": "http://asyncapi.com/definitions/1.1.0/SecurityRequirement.json" + } }, "servers": { "type": "array", + "uniqueItems": true, "items": { "$ref": "http://asyncapi.com/definitions/1.1.0/server.json" - }, - "uniqueItems": true - }, - "topics": { - "$ref": "http://asyncapi.com/definitions/1.1.0/topics.json" - }, - "components": { - "$ref": "http://asyncapi.com/definitions/1.1.0/components.json" + } }, "tags": { "type": "array", + "uniqueItems": true, "items": { "$ref": "http://asyncapi.com/definitions/1.1.0/tag.json" - }, - "uniqueItems": true - }, - "security": { - "type": "array", - "items": { - "$ref": "http://asyncapi.com/definitions/1.1.0/SecurityRequirement.json" } }, - "externalDocs": { - "$ref": "http://asyncapi.com/definitions/1.1.0/externalDocs.json" + "topics": { + "$ref": "http://asyncapi.com/definitions/1.1.0/topics.json" } - } + }, + "patternProperties": { + "^x-": { + "$ref": "http://asyncapi.com/definitions/1.1.0/vendorExtension.json" + } + }, + "additionalProperties": false } diff --git a/definitions/1.1.0/components.json b/definitions/1.1.0/components.json index 4ef4b5d7..1765bf23 100644 --- a/definitions/1.1.0/components.json +++ b/definitions/1.1.0/components.json @@ -1,14 +1,15 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.1.0/components.json", "description": "An object to hold a set of reusable objects for different aspects of the AsyncAPI Specification.", - "additionalProperties": false, + "type": "object", "properties": { - "schemas": { - "$ref": "http://asyncapi.com/definitions/1.1.0/schemas.json" - }, "messages": { "$ref": "http://asyncapi.com/definitions/1.1.0/messages.json" }, + "schemas": { + "$ref": "http://asyncapi.com/definitions/1.1.0/schemas.json" + }, "securitySchemes": { "type": "object", "patternProperties": { @@ -25,6 +26,5 @@ } } }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.1.0/components.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/1.1.0/contact.json b/definitions/1.1.0/contact.json index 75fb06b5..f426eaf9 100644 --- a/definitions/1.1.0/contact.json +++ b/definitions/1.1.0/contact.json @@ -1,21 +1,22 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.1.0/contact.json", "description": "Contact information for the owners of the API.", - "additionalProperties": false, + "type": "object", "properties": { - "name": { + "email": { + "description": "The email address of the contact person/organization.", "type": "string", - "description": "The identifying name of the contact person/organization." + "format": "email" + }, + "name": { + "description": "The identifying name of the contact person/organization.", + "type": "string" }, "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" + "format": "uri" } }, "patternProperties": { @@ -23,6 +24,5 @@ "$ref": "http://asyncapi.com/definitions/1.1.0/vendorExtension.json" } }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.1.0/contact.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/1.1.0/externalDocs.json b/definitions/1.1.0/externalDocs.json index 574e6d71..b228275e 100644 --- a/definitions/1.1.0/externalDocs.json +++ b/definitions/1.1.0/externalDocs.json @@ -1,7 +1,8 @@ { - "type": "object", - "additionalProperties": false, + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.1.0/externalDocs.json", "description": "information about external documentation", + "type": "object", "required": [ "url" ], @@ -19,6 +20,5 @@ "$ref": "http://asyncapi.com/definitions/1.1.0/vendorExtension.json" } }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.1.0/externalDocs.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/1.1.0/info.json b/definitions/1.1.0/info.json index 38e831dd..5612e2a6 100644 --- a/definitions/1.1.0/info.json +++ b/definitions/1.1.0/info.json @@ -1,41 +1,41 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.1.0/info.json", "description": "General information about the API.", + "type": "object", "required": [ "version", "title" ], - "additionalProperties": false, - "patternProperties": { - "^x-": { - "$ref": "http://asyncapi.com/definitions/1.1.0/vendorExtension.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": "A unique and precise title of the API.", + "type": "string" }, "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" + "description": "A longer description of the API. Should be different from the title. CommonMark is allowed.", + "type": "string" }, "contact": { "$ref": "http://asyncapi.com/definitions/1.1.0/contact.json" }, "license": { "$ref": "http://asyncapi.com/definitions/1.1.0/license.json" + }, + "termsOfService": { + "description": "A URL to the Terms of Service for the API. MUST be in the format of a URL.", + "type": "string", + "format": "uri" + }, + "version": { + "description": "A semantic version number of the API.", + "type": "string" } }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.1.0/info.json" -} \ No newline at end of file + "patternProperties": { + "^x-": { + "$ref": "http://asyncapi.com/definitions/1.1.0/vendorExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/1.1.0/license.json b/definitions/1.1.0/license.json index 771459ac..77007944 100644 --- a/definitions/1.1.0/license.json +++ b/definitions/1.1.0/license.json @@ -1,17 +1,18 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.1.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." + "description": "The name of the license type. It's encouraged to use an OSI compatible license.", + "type": "string" }, "url": { - "type": "string", "description": "The URL pointing to the license.", + "type": "string", "format": "uri" } }, @@ -20,6 +21,5 @@ "$ref": "http://asyncapi.com/definitions/1.1.0/vendorExtension.json" } }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.1.0/license.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/1.1.0/message.json b/definitions/1.1.0/message.json index 4528ff9b..44e5a7e8 100644 --- a/definitions/1.1.0/message.json +++ b/definitions/1.1.0/message.json @@ -1,45 +1,45 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.1.0/message.json", "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-": { - "$ref": "http://asyncapi.com/definitions/1.1.0/vendorExtension.json" - } - }, "properties": { + "description": { + "description": "A longer description of the message. CommonMark is allowed.", + "type": "string" + }, + "deprecated": { + "default": false, + "type": "boolean" + }, "$ref": { "type": "string" }, + "example": {}, + "externalDocs": { + "$ref": "http://asyncapi.com/definitions/1.1.0/externalDocs.json" + }, "headers": { "$ref": "http://asyncapi.com/definitions/1.1.0/schema.json" }, "payload": { "$ref": "http://asyncapi.com/definitions/1.1.0/schema.json" }, + "summary": { + "description": "A brief summary of the message.", + "type": "string" + }, "tags": { "type": "array", + "uniqueItems": true, "items": { "$ref": "http://asyncapi.com/definitions/1.1.0/tag.json" - }, - "uniqueItems": true - }, - "summary": { - "type": "string", - "description": "A brief summary of the message." - }, - "description": { - "type": "string", - "description": "A longer description of the message. CommonMark is allowed." - }, - "externalDocs": { - "$ref": "http://asyncapi.com/definitions/1.1.0/externalDocs.json" - }, - "deprecated": { - "type": "boolean", - "default": false - }, - "example": {} + } + } }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.1.0/message.json" -} \ No newline at end of file + "patternProperties": { + "^x-": { + "$ref": "http://asyncapi.com/definitions/1.1.0/vendorExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/1.1.0/messages.json b/definitions/1.1.0/messages.json index 66efc542..ae87d194 100644 --- a/definitions/1.1.0/messages.json +++ b/definitions/1.1.0/messages.json @@ -1,9 +1,9 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.1.0/messages.json", + "description": "JSON objects describing the messages being consumed and produced by the API.", "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/1.1.0/message.json" - }, - "description": "JSON objects describing the messages being consumed and produced by the API.", - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.1.0/messages.json" -} \ No newline at end of file + } +} diff --git a/definitions/1.1.0/operation.json b/definitions/1.1.0/operation.json index 442b5325..53e9d92a 100644 --- a/definitions/1.1.0/operation.json +++ b/definitions/1.1.0/operation.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.1.0/operation.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/1.1.0/message.json" @@ -8,12 +10,6 @@ "required": [ "oneOf" ], - "additionalProperties": false, - "patternProperties": { - "^x-": { - "$ref": "http://asyncapi.com/definitions/1.1.0/vendorExtension.json" - } - }, "properties": { "oneOf": { "type": "array", @@ -22,9 +18,13 @@ "$ref": "http://asyncapi.com/definitions/1.1.0/message.json" } } - } + }, + "patternProperties": { + "^x-": { + "$ref": "http://asyncapi.com/definitions/1.1.0/vendorExtension.json" + } + }, + "additionalProperties": false } - ], - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.1.0/operation.json" -} \ No newline at end of file + ] +} diff --git a/definitions/1.1.0/parameter.json b/definitions/1.1.0/parameter.json index b4820dcf..2dbc1428 100644 --- a/definitions/1.1.0/parameter.json +++ b/definitions/1.1.0/parameter.json @@ -1,23 +1,23 @@ { - "additionalProperties": false, - "patternProperties": { - "^x-": { - "$ref": "http://asyncapi.com/definitions/1.1.0/vendorExtension.json" - } - }, + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.1.0/parameter.json", "properties": { "description": { - "type": "string", - "description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed." + "description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed.", + "type": "string" }, "name": { - "type": "string", - "description": "The name of the parameter." + "description": "The name of the parameter.", + "type": "string" }, "schema": { "$ref": "http://asyncapi.com/definitions/1.1.0/schema.json" } }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.1.0/parameter.json" -} \ No newline at end of file + "patternProperties": { + "^x-": { + "$ref": "http://asyncapi.com/definitions/1.1.0/vendorExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/1.1.0/schema.json b/definitions/1.1.0/schema.json index 785a302c..f53af787 100644 --- a/definitions/1.1.0/schema.json +++ b/definitions/1.1.0/schema.json @@ -1,51 +1,82 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.1.0/schema.json", "description": "A deterministic version of a JSON Schema object.", - "patternProperties": { - "^x-": { - "$ref": "http://asyncapi.com/definitions/1.1.0/vendorExtension.json" - } - }, + "type": "object", "properties": { - "$ref": { - "type": "string" - }, - "format": { - "type": "string" - }, "title": { "$ref": "http://json-schema.org/draft-04/schema#/properties/title" }, "description": { "$ref": "http://json-schema.org/draft-04/schema#/properties/description" }, + "readOnly": { + "default": false, + "type": "boolean" + }, "default": { "$ref": "http://json-schema.org/draft-04/schema#/properties/default" }, - "multipleOf": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/multipleOf" + "$ref": { + "type": "string" }, - "maximum": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/maximum" + "type": { + "$ref": "http://json-schema.org/draft-04/schema#/properties/type" + }, + "enum": { + "$ref": "http://json-schema.org/draft-04/schema#/properties/enum" + }, + "allOf": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "http://asyncapi.com/definitions/1.1.0/schema.json" + } + }, + "anyOf": { + "type": "array", + "minItems": 2, + "items": { + "$ref": "http://asyncapi.com/definitions/1.1.0/schema.json" + } + }, + "oneOf": { + "type": "array", + "minItems": 2, + "items": { + "$ref": "http://asyncapi.com/definitions/1.1.0/schema.json" + } + }, + "not": { + "$ref": "http://asyncapi.com/definitions/1.1.0/schema.json" }, "exclusiveMaximum": { "$ref": "http://json-schema.org/draft-04/schema#/properties/exclusiveMaximum" }, - "minimum": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/minimum" + "maximum": { + "$ref": "http://json-schema.org/draft-04/schema#/properties/maximum" }, "exclusiveMinimum": { "$ref": "http://json-schema.org/draft-04/schema#/properties/exclusiveMinimum" }, + "minimum": { + "$ref": "http://json-schema.org/draft-04/schema#/properties/minimum" + }, + "multipleOf": { + "$ref": "http://json-schema.org/draft-04/schema#/properties/multipleOf" + }, + "pattern": { + "$ref": "http://json-schema.org/draft-04/schema#/properties/pattern" + }, + "format": { + "type": "string" + }, "maxLength": { "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger" }, "minLength": { "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0" }, - "pattern": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/pattern" - }, "maxItems": { "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger" }, @@ -55,33 +86,8 @@ "uniqueItems": { "$ref": "http://json-schema.org/draft-04/schema#/properties/uniqueItems" }, - "maxProperties": { - "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger" - }, - "minProperties": { - "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0" - }, - "required": { - "$ref": "http://json-schema.org/draft-04/schema#/definitions/stringArray" - }, - "enum": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/enum" - }, - "additionalProperties": { - "anyOf": [ - { - "$ref": "http://asyncapi.com/definitions/1.1.0/schema.json" - }, - { - "type": "boolean" - } - ], - "default": {} - }, - "type": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/type" - }, "items": { + "default": {}, "anyOf": [ { "$ref": "http://asyncapi.com/definitions/1.1.0/schema.json" @@ -93,56 +99,50 @@ "$ref": "http://asyncapi.com/definitions/1.1.0/schema.json" } } - ], - "default": {} - }, - "allOf": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "http://asyncapi.com/definitions/1.1.0/schema.json" - } + ] }, - "oneOf": { - "type": "array", - "minItems": 2, - "items": { - "$ref": "http://asyncapi.com/definitions/1.1.0/schema.json" - } + "required": { + "$ref": "http://json-schema.org/draft-04/schema#/definitions/stringArray" }, - "anyOf": { - "type": "array", - "minItems": 2, - "items": { - "$ref": "http://asyncapi.com/definitions/1.1.0/schema.json" - } + "maxProperties": { + "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger" }, - "not": { - "$ref": "http://asyncapi.com/definitions/1.1.0/schema.json" + "minProperties": { + "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0" }, "properties": { + "default": {}, "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/1.1.0/schema.json" - }, - "default": {} + } + }, + "additionalProperties": { + "default": {}, + "anyOf": [ + { + "$ref": "http://asyncapi.com/definitions/1.1.0/schema.json" + }, + { + "type": "boolean" + } + ] }, "discriminator": { "type": "string" }, - "readOnly": { - "type": "boolean", - "default": false - }, - "xml": { - "$ref": "http://asyncapi.com/definitions/1.1.0/xml.json" - }, + "example": {}, "externalDocs": { "$ref": "http://asyncapi.com/definitions/1.1.0/externalDocs.json" }, - "example": {} + "xml": { + "$ref": "http://asyncapi.com/definitions/1.1.0/xml.json" + } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.1.0/schema.json" -} \ No newline at end of file + "patternProperties": { + "^x-": { + "$ref": "http://asyncapi.com/definitions/1.1.0/vendorExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/1.1.0/schemas.json b/definitions/1.1.0/schemas.json index 27add999..3421aee5 100644 --- a/definitions/1.1.0/schemas.json +++ b/definitions/1.1.0/schemas.json @@ -1,9 +1,9 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.1.0/schemas.json", + "description": "JSON objects describing schemas the API uses.", "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/1.1.0/schema.json" - }, - "description": "JSON objects describing schemas the API uses.", - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.1.0/schemas.json" -} \ No newline at end of file + } +} diff --git a/definitions/1.1.0/server.json b/definitions/1.1.0/server.json index b3594744..eed4785a 100644 --- a/definitions/1.1.0/server.json +++ b/definitions/1.1.0/server.json @@ -1,26 +1,19 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.1.0/server.json", "description": "An object representing a Server.", + "type": "object", "required": [ "url", "scheme" ], - "additionalProperties": false, - "patternProperties": { - "^x-": { - "$ref": "http://asyncapi.com/definitions/1.1.0/vendorExtension.json" - } - }, "properties": { - "url": { - "type": "string" - }, "description": { "type": "string" }, "scheme": { - "type": "string", "description": "The transfer protocol.", + "type": "string", "enum": [ "kafka", "kafka-secure", @@ -39,10 +32,17 @@ "schemeVersion": { "type": "string" }, + "url": { + "type": "string" + }, "variables": { "$ref": "http://asyncapi.com/definitions/1.1.0/serverVariables.json" } }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.1.0/server.json" -} \ No newline at end of file + "patternProperties": { + "^x-": { + "$ref": "http://asyncapi.com/definitions/1.1.0/vendorExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/1.1.0/serverVariable.json b/definitions/1.1.0/serverVariable.json index e1342904..7596a73a 100644 --- a/definitions/1.1.0/serverVariable.json +++ b/definitions/1.1.0/serverVariable.json @@ -1,28 +1,28 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.1.0/serverVariable.json", "description": "An object representing a Server Variable for server URL template substitution.", + "type": "object", "minProperties": 1, - "additionalProperties": false, - "patternProperties": { - "^x-": { - "$ref": "http://asyncapi.com/definitions/1.1.0/vendorExtension.json" - } - }, "properties": { - "enum": { - "type": "array", - "items": { - "type": "string" - }, - "uniqueItems": true + "description": { + "type": "string" }, "default": { "type": "string" }, - "description": { - "type": "string" + "enum": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } } }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.1.0/serverVariable.json" -} \ No newline at end of file + "patternProperties": { + "^x-": { + "$ref": "http://asyncapi.com/definitions/1.1.0/vendorExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/1.1.0/serverVariables.json b/definitions/1.1.0/serverVariables.json index decc74c4..a2a40560 100644 --- a/definitions/1.1.0/serverVariables.json +++ b/definitions/1.1.0/serverVariables.json @@ -1,8 +1,8 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.1.0/serverVariables.json", "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/1.1.0/serverVariable.json" - }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.1.0/serverVariables.json" -} \ No newline at end of file + } +} diff --git a/definitions/1.1.0/symmetricEncryption.json b/definitions/1.1.0/symmetricEncryption.json index 2d7bd747..0690ddda 100644 --- a/definitions/1.1.0/symmetricEncryption.json +++ b/definitions/1.1.0/symmetricEncryption.json @@ -1,23 +1,23 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.1.0/symmetricEncryption.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "symmetricEncryption" ] - }, - "description": { - "type": "string" } }, "patternProperties": { "^x-": {} }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.1.0/symmetricEncryption.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/1.1.0/tag.json b/definitions/1.1.0/tag.json index 88857395..4c5402f9 100644 --- a/definitions/1.1.0/tag.json +++ b/definitions/1.1.0/tag.json @@ -1,18 +1,19 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.1.0/tag.json", "type": "object", - "additionalProperties": false, "required": [ "name" ], "properties": { - "name": { - "type": "string" - }, "description": { "type": "string" }, "externalDocs": { "$ref": "http://asyncapi.com/definitions/1.1.0/externalDocs.json" + }, + "name": { + "type": "string" } }, "patternProperties": { @@ -20,6 +21,5 @@ "$ref": "http://asyncapi.com/definitions/1.1.0/vendorExtension.json" } }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.1.0/tag.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/1.1.0/topicItem.json b/definitions/1.1.0/topicItem.json index 1c2cca70..bb372beb 100644 --- a/definitions/1.1.0/topicItem.json +++ b/definitions/1.1.0/topicItem.json @@ -1,20 +1,20 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.1.0/topicItem.json", "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-": { - "$ref": "http://asyncapi.com/definitions/1.1.0/vendorExtension.json" - } - }, "minProperties": 1, "properties": { + "deprecated": { + "default": false, + "type": "boolean" + }, "$ref": { "type": "string" }, "parameters": { "type": "array", - "uniqueItems": true, "minItems": 1, + "uniqueItems": true, "items": { "$ref": "http://asyncapi.com/definitions/1.1.0/parameter.json" } @@ -24,12 +24,12 @@ }, "subscribe": { "$ref": "http://asyncapi.com/definitions/1.1.0/operation.json" - }, - "deprecated": { - "type": "boolean", - "default": false } }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.1.0/topicItem.json" -} \ No newline at end of file + "patternProperties": { + "^x-": { + "$ref": "http://asyncapi.com/definitions/1.1.0/vendorExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/1.1.0/topics.json b/definitions/1.1.0/topics.json index c48c3e41..7ccc1a46 100644 --- a/definitions/1.1.0/topics.json +++ b/definitions/1.1.0/topics.json @@ -1,15 +1,15 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.1.0/topics.json", "description": "Relative paths to the individual topics. They must be relative to the 'baseTopic'.", + "type": "object", "patternProperties": { - "^x-": { - "$ref": "http://asyncapi.com/definitions/1.1.0/vendorExtension.json" - }, "^[^.]": { "$ref": "http://asyncapi.com/definitions/1.1.0/topicItem.json" + }, + "^x-": { + "$ref": "http://asyncapi.com/definitions/1.1.0/vendorExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.1.0/topics.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/1.1.0/userPassword.json b/definitions/1.1.0/userPassword.json index 0330bf6c..b9415c47 100644 --- a/definitions/1.1.0/userPassword.json +++ b/definitions/1.1.0/userPassword.json @@ -1,23 +1,23 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.1.0/userPassword.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "userPassword" ] - }, - "description": { - "type": "string" } }, "patternProperties": { "^x-": {} }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.1.0/userPassword.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/1.1.0/vendorExtension.json b/definitions/1.1.0/vendorExtension.json index 3a0d222b..5ebe761d 100644 --- a/definitions/1.1.0/vendorExtension.json +++ b/definitions/1.1.0/vendorExtension.json @@ -1,7 +1,7 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.1.0/vendorExtension.json", "description": "Any property starting with x- is valid.", - "additionalProperties": true, "additionalItems": true, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.1.0/vendorExtension.json" -} \ No newline at end of file + "additionalProperties": true +} diff --git a/definitions/1.1.0/xml.json b/definitions/1.1.0/xml.json index ca8c624c..b9381db5 100644 --- a/definitions/1.1.0/xml.json +++ b/definitions/1.1.0/xml.json @@ -1,7 +1,12 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.1.0/xml.json", "type": "object", - "additionalProperties": false, "properties": { + "attribute": { + "default": false, + "type": "boolean" + }, "name": { "type": "string" }, @@ -11,15 +16,10 @@ "prefix": { "type": "string" }, - "attribute": { - "type": "boolean", - "default": false - }, "wrapped": { - "type": "boolean", - "default": false + "default": false, + "type": "boolean" } }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.1.0/xml.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/1.2.0/APIKeyHTTPSecurityScheme.json b/definitions/1.2.0/APIKeyHTTPSecurityScheme.json index 0dc709ac..1a3bdf51 100644 --- a/definitions/1.2.0/APIKeyHTTPSecurityScheme.json +++ b/definitions/1.2.0/APIKeyHTTPSecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.2.0/APIKeyHTTPSecurityScheme.json", "type": "object", "required": [ "type", @@ -6,15 +8,15 @@ "in" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "httpApiKey" ] }, - "name": { - "type": "string" - }, "in": { "type": "string", "enum": [ @@ -23,14 +25,12 @@ "cookie" ] }, - "description": { + "name": { "type": "string" } }, "patternProperties": { "^x-": {} }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.2.0/APIKeyHTTPSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/1.2.0/BearerHTTPSecurityScheme.json b/definitions/1.2.0/BearerHTTPSecurityScheme.json index e552655c..e6ebf823 100644 --- a/definitions/1.2.0/BearerHTTPSecurityScheme.json +++ b/definitions/1.2.0/BearerHTTPSecurityScheme.json @@ -1,33 +1,33 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.2.0/BearerHTTPSecurityScheme.json", "type": "object", "required": [ "type", "scheme" ], "properties": { - "scheme": { + "description": { + "type": "string" + }, + "type": { "type": "string", "enum": [ - "bearer" + "http" ] }, "bearerFormat": { "type": "string" }, - "type": { + "scheme": { "type": "string", "enum": [ - "http" + "bearer" ] - }, - "description": { - "type": "string" } }, "patternProperties": { "^x-": {} }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.2.0/BearerHTTPSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/1.2.0/HTTPSecurityScheme.json b/definitions/1.2.0/HTTPSecurityScheme.json index 8e0d157d..02fb562f 100644 --- a/definitions/1.2.0/HTTPSecurityScheme.json +++ b/definitions/1.2.0/HTTPSecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.2.0/HTTPSecurityScheme.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/1.2.0/NonBearerHTTPSecurityScheme.json" @@ -9,7 +11,5 @@ { "$ref": "http://asyncapi.com/definitions/1.2.0/APIKeyHTTPSecurityScheme.json" } - ], - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.2.0/HTTPSecurityScheme.json" -} \ No newline at end of file + ] +} diff --git a/definitions/1.2.0/NonBearerHTTPSecurityScheme.json b/definitions/1.2.0/NonBearerHTTPSecurityScheme.json index 4ebfdbe3..7cda38e4 100644 --- a/definitions/1.2.0/NonBearerHTTPSecurityScheme.json +++ b/definitions/1.2.0/NonBearerHTTPSecurityScheme.json @@ -1,4 +1,7 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.2.0/NonBearerHTTPSecurityScheme.json", + "type": "object", "not": { "type": "object", "properties": { @@ -10,15 +13,11 @@ } } }, - "type": "object", "required": [ "scheme", "type" ], "properties": { - "scheme": { - "type": "string" - }, "description": { "type": "string" }, @@ -27,12 +26,13 @@ "enum": [ "http" ] + }, + "scheme": { + "type": "string" } }, "patternProperties": { "^x-": {} }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.2.0/NonBearerHTTPSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/1.2.0/Reference.json b/definitions/1.2.0/Reference.json index 82ec3206..84aa0611 100644 --- a/definitions/1.2.0/Reference.json +++ b/definitions/1.2.0/Reference.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.2.0/Reference.json", "type": "object", "required": [ "$ref" @@ -8,7 +10,5 @@ "type": "string", "format": "uri" } - }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.2.0/Reference.json" -} \ No newline at end of file + } +} diff --git a/definitions/1.2.0/SecurityRequirement.json b/definitions/1.2.0/SecurityRequirement.json index 53a6020d..f0dddf7b 100644 --- a/definitions/1.2.0/SecurityRequirement.json +++ b/definitions/1.2.0/SecurityRequirement.json @@ -1,11 +1,11 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.2.0/SecurityRequirement.json", "type": "object", "additionalProperties": { "type": "array", "items": { "type": "string" } - }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.2.0/SecurityRequirement.json" -} \ No newline at end of file + } +} diff --git a/definitions/1.2.0/SecurityScheme.json b/definitions/1.2.0/SecurityScheme.json index c7af41bf..0d6a7e07 100644 --- a/definitions/1.2.0/SecurityScheme.json +++ b/definitions/1.2.0/SecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.2.0/SecurityScheme.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/1.2.0/userPassword.json" @@ -18,7 +20,5 @@ { "$ref": "http://asyncapi.com/definitions/1.2.0/HTTPSecurityScheme.json" } - ], - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.2.0/SecurityScheme.json" -} \ No newline at end of file + ] +} diff --git a/definitions/1.2.0/X509.json b/definitions/1.2.0/X509.json index 54cfec76..4e92150c 100644 --- a/definitions/1.2.0/X509.json +++ b/definitions/1.2.0/X509.json @@ -1,23 +1,23 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.2.0/X509.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "X509" ] - }, - "description": { - "type": "string" } }, "patternProperties": { "^x-": {} }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.2.0/X509.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/1.2.0/apiKey.json b/definitions/1.2.0/apiKey.json index b35cac48..00912a8b 100644 --- a/definitions/1.2.0/apiKey.json +++ b/definitions/1.2.0/apiKey.json @@ -1,10 +1,15 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.2.0/apiKey.json", "type": "object", "required": [ "type", "in" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ @@ -17,15 +22,10 @@ "user", "password" ] - }, - "description": { - "type": "string" } }, "patternProperties": { "^x-": {} }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.2.0/apiKey.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/1.2.0/asymmetricEncryption.json b/definitions/1.2.0/asymmetricEncryption.json index 9d9b2697..6efd9d4d 100644 --- a/definitions/1.2.0/asymmetricEncryption.json +++ b/definitions/1.2.0/asymmetricEncryption.json @@ -1,23 +1,23 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.2.0/asymmetricEncryption.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "asymmetricEncryption" ] - }, - "description": { - "type": "string" } }, "patternProperties": { "^x-": {} }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.2.0/asymmetricEncryption.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/1.2.0/asyncapi.json b/definitions/1.2.0/asyncapi.json index 2c083f62..08e28ed6 100644 --- a/definitions/1.2.0/asyncapi.json +++ b/definitions/1.2.0/asyncapi.json @@ -1,12 +1,8 @@ { - "title": "AsyncAPI 1.2.0 schema.", "$schema": "http://json-schema.org/draft-04/schema#", "id": "http://asyncapi.com/definitions/1.2.0/asyncapi.json", + "title": "AsyncAPI 1.2.0 schema.", "type": "object", - "required": [ - "asyncapi", - "info" - ], "oneOf": [ { "required": [ @@ -24,67 +20,71 @@ ] } ], - "additionalProperties": false, - "patternProperties": { - "^x-": { - "$ref": "http://asyncapi.com/definitions/1.2.0/vendorExtension.json" - } - }, + "required": [ + "asyncapi", + "info" + ], "properties": { "asyncapi": { + "description": "The AsyncAPI specification version of this document.", "type": "string", "enum": [ "1.0.0", "1.1.0", "1.2.0" - ], - "description": "The AsyncAPI specification version of this document." + ] + }, + "baseTopic": { + "description": "The base topic to the API. Example: 'hitch'.", + "default": "", + "type": "string", + "pattern": "^[^/.]" + }, + "components": { + "$ref": "http://asyncapi.com/definitions/1.2.0/components.json" + }, + "events": { + "description": "The list of messages an events API sends and/or receives.", + "$ref": "http://asyncapi.com/definitions/1.2.0/events.json" + }, + "externalDocs": { + "$ref": "http://asyncapi.com/definitions/1.2.0/externalDocs.json" }, "info": { "$ref": "http://asyncapi.com/definitions/1.2.0/info.json" }, - "baseTopic": { - "type": "string", - "pattern": "^[^/.]", - "description": "The base topic to the API. Example: 'hitch'.", - "default": "" + "security": { + "type": "array", + "items": { + "$ref": "http://asyncapi.com/definitions/1.2.0/SecurityRequirement.json" + } }, "servers": { "type": "array", + "uniqueItems": true, "items": { "$ref": "http://asyncapi.com/definitions/1.2.0/server.json" - }, - "uniqueItems": true - }, - "topics": { - "$ref": "http://asyncapi.com/definitions/1.2.0/topics.json" + } }, "stream": { - "$ref": "http://asyncapi.com/definitions/1.2.0/stream.json", - "description": "The list of messages a consumer can read or write from/to a streaming API." - }, - "events": { - "$ref": "http://asyncapi.com/definitions/1.2.0/events.json", - "description": "The list of messages an events API sends and/or receives." - }, - "components": { - "$ref": "http://asyncapi.com/definitions/1.2.0/components.json" + "description": "The list of messages a consumer can read or write from/to a streaming API.", + "$ref": "http://asyncapi.com/definitions/1.2.0/stream.json" }, "tags": { "type": "array", + "uniqueItems": true, "items": { "$ref": "http://asyncapi.com/definitions/1.2.0/tag.json" - }, - "uniqueItems": true - }, - "security": { - "type": "array", - "items": { - "$ref": "http://asyncapi.com/definitions/1.2.0/SecurityRequirement.json" } }, - "externalDocs": { - "$ref": "http://asyncapi.com/definitions/1.2.0/externalDocs.json" + "topics": { + "$ref": "http://asyncapi.com/definitions/1.2.0/topics.json" } - } + }, + "patternProperties": { + "^x-": { + "$ref": "http://asyncapi.com/definitions/1.2.0/vendorExtension.json" + } + }, + "additionalProperties": false } diff --git a/definitions/1.2.0/components.json b/definitions/1.2.0/components.json index 18041578..68bcd176 100644 --- a/definitions/1.2.0/components.json +++ b/definitions/1.2.0/components.json @@ -1,14 +1,18 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.2.0/components.json", "description": "An object to hold a set of reusable objects for different aspects of the AsyncAPI Specification.", - "additionalProperties": false, + "type": "object", "properties": { - "schemas": { - "$ref": "http://asyncapi.com/definitions/1.2.0/schemas.json" - }, "messages": { "$ref": "http://asyncapi.com/definitions/1.2.0/messages.json" }, + "parameters": { + "$ref": "http://asyncapi.com/definitions/1.2.0/parameters.json" + }, + "schemas": { + "$ref": "http://asyncapi.com/definitions/1.2.0/schemas.json" + }, "securitySchemes": { "type": "object", "patternProperties": { @@ -23,11 +27,7 @@ ] } } - }, - "parameters": { - "$ref": "http://asyncapi.com/definitions/1.2.0/parameters.json" } }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.2.0/components.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/1.2.0/contact.json b/definitions/1.2.0/contact.json index 26bdbe6c..d339467b 100644 --- a/definitions/1.2.0/contact.json +++ b/definitions/1.2.0/contact.json @@ -1,21 +1,22 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.2.0/contact.json", "description": "Contact information for the owners of the API.", - "additionalProperties": false, + "type": "object", "properties": { - "name": { + "email": { + "description": "The email address of the contact person/organization.", "type": "string", - "description": "The identifying name of the contact person/organization." + "format": "email" + }, + "name": { + "description": "The identifying name of the contact person/organization.", + "type": "string" }, "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" + "format": "uri" } }, "patternProperties": { @@ -23,6 +24,5 @@ "$ref": "http://asyncapi.com/definitions/1.2.0/vendorExtension.json" } }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.2.0/contact.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/1.2.0/events.json b/definitions/1.2.0/events.json index f5c2e64a..3c9175a6 100644 --- a/definitions/1.2.0/events.json +++ b/definitions/1.2.0/events.json @@ -1,13 +1,8 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.2.0/events.json", "title": "Events Object", "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-": { - "$ref": "http://asyncapi.com/definitions/1.2.0/vendorExtension.json" - } - }, - "minProperties": 1, "anyOf": [ { "required": [ @@ -20,12 +15,13 @@ ] } ], + "minProperties": 1, "properties": { "receive": { "title": "Events Receive Object", "type": "array", - "uniqueItems": true, "minItems": 1, + "uniqueItems": true, "items": { "$ref": "http://asyncapi.com/definitions/1.2.0/message.json" } @@ -33,13 +29,17 @@ "send": { "title": "Events Send Object", "type": "array", - "uniqueItems": true, "minItems": 1, + "uniqueItems": true, "items": { "$ref": "http://asyncapi.com/definitions/1.2.0/message.json" } } }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.2.0/events.json" -} \ No newline at end of file + "patternProperties": { + "^x-": { + "$ref": "http://asyncapi.com/definitions/1.2.0/vendorExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/1.2.0/externalDocs.json b/definitions/1.2.0/externalDocs.json index 32637c87..0ebcafa2 100644 --- a/definitions/1.2.0/externalDocs.json +++ b/definitions/1.2.0/externalDocs.json @@ -1,7 +1,8 @@ { - "type": "object", - "additionalProperties": false, + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.2.0/externalDocs.json", "description": "information about external documentation", + "type": "object", "required": [ "url" ], @@ -19,6 +20,5 @@ "$ref": "http://asyncapi.com/definitions/1.2.0/vendorExtension.json" } }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.2.0/externalDocs.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/1.2.0/info.json b/definitions/1.2.0/info.json index 133a29b8..6127f885 100644 --- a/definitions/1.2.0/info.json +++ b/definitions/1.2.0/info.json @@ -1,41 +1,41 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.2.0/info.json", "description": "General information about the API.", + "type": "object", "required": [ "version", "title" ], - "additionalProperties": false, - "patternProperties": { - "^x-": { - "$ref": "http://asyncapi.com/definitions/1.2.0/vendorExtension.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": "A unique and precise title of the API.", + "type": "string" }, "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" + "description": "A longer description of the API. Should be different from the title. CommonMark is allowed.", + "type": "string" }, "contact": { "$ref": "http://asyncapi.com/definitions/1.2.0/contact.json" }, "license": { "$ref": "http://asyncapi.com/definitions/1.2.0/license.json" + }, + "termsOfService": { + "description": "A URL to the Terms of Service for the API. MUST be in the format of a URL.", + "type": "string", + "format": "uri" + }, + "version": { + "description": "A semantic version number of the API.", + "type": "string" } }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.2.0/info.json" -} \ No newline at end of file + "patternProperties": { + "^x-": { + "$ref": "http://asyncapi.com/definitions/1.2.0/vendorExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/1.2.0/license.json b/definitions/1.2.0/license.json index 2536d4ef..cb34be64 100644 --- a/definitions/1.2.0/license.json +++ b/definitions/1.2.0/license.json @@ -1,17 +1,18 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.2.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." + "description": "The name of the license type. It's encouraged to use an OSI compatible license.", + "type": "string" }, "url": { - "type": "string", "description": "The URL pointing to the license.", + "type": "string", "format": "uri" } }, @@ -20,6 +21,5 @@ "$ref": "http://asyncapi.com/definitions/1.2.0/vendorExtension.json" } }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.2.0/license.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/1.2.0/message.json b/definitions/1.2.0/message.json index db45044d..08460979 100644 --- a/definitions/1.2.0/message.json +++ b/definitions/1.2.0/message.json @@ -1,45 +1,45 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.2.0/message.json", "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-": { - "$ref": "http://asyncapi.com/definitions/1.2.0/vendorExtension.json" - } - }, "properties": { + "description": { + "description": "A longer description of the message. CommonMark is allowed.", + "type": "string" + }, + "deprecated": { + "default": false, + "type": "boolean" + }, "$ref": { "type": "string" }, + "example": {}, + "externalDocs": { + "$ref": "http://asyncapi.com/definitions/1.2.0/externalDocs.json" + }, "headers": { "$ref": "http://asyncapi.com/definitions/1.2.0/schema.json" }, "payload": { "$ref": "http://asyncapi.com/definitions/1.2.0/schema.json" }, + "summary": { + "description": "A brief summary of the message.", + "type": "string" + }, "tags": { "type": "array", + "uniqueItems": true, "items": { "$ref": "http://asyncapi.com/definitions/1.2.0/tag.json" - }, - "uniqueItems": true - }, - "summary": { - "type": "string", - "description": "A brief summary of the message." - }, - "description": { - "type": "string", - "description": "A longer description of the message. CommonMark is allowed." - }, - "externalDocs": { - "$ref": "http://asyncapi.com/definitions/1.2.0/externalDocs.json" - }, - "deprecated": { - "type": "boolean", - "default": false - }, - "example": {} + } + } }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.2.0/message.json" -} \ No newline at end of file + "patternProperties": { + "^x-": { + "$ref": "http://asyncapi.com/definitions/1.2.0/vendorExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/1.2.0/messages.json b/definitions/1.2.0/messages.json index c6cb8855..cbb49845 100644 --- a/definitions/1.2.0/messages.json +++ b/definitions/1.2.0/messages.json @@ -1,9 +1,9 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.2.0/messages.json", + "description": "JSON objects describing the messages being consumed and produced by the API.", "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/1.2.0/message.json" - }, - "description": "JSON objects describing the messages being consumed and produced by the API.", - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.2.0/messages.json" -} \ No newline at end of file + } +} diff --git a/definitions/1.2.0/operation.json b/definitions/1.2.0/operation.json index b352e238..9c05ad94 100644 --- a/definitions/1.2.0/operation.json +++ b/definitions/1.2.0/operation.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.2.0/operation.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/1.2.0/message.json" @@ -8,12 +10,6 @@ "required": [ "oneOf" ], - "additionalProperties": false, - "patternProperties": { - "^x-": { - "$ref": "http://asyncapi.com/definitions/1.2.0/vendorExtension.json" - } - }, "properties": { "oneOf": { "type": "array", @@ -22,9 +18,13 @@ "$ref": "http://asyncapi.com/definitions/1.2.0/message.json" } } - } + }, + "patternProperties": { + "^x-": { + "$ref": "http://asyncapi.com/definitions/1.2.0/vendorExtension.json" + } + }, + "additionalProperties": false } - ], - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.2.0/operation.json" -} \ No newline at end of file + ] +} diff --git a/definitions/1.2.0/parameter.json b/definitions/1.2.0/parameter.json index 039fc423..3a030850 100644 --- a/definitions/1.2.0/parameter.json +++ b/definitions/1.2.0/parameter.json @@ -1,26 +1,26 @@ { - "additionalProperties": false, - "patternProperties": { - "^x-": { - "$ref": "http://asyncapi.com/definitions/1.2.0/vendorExtension.json" - } - }, + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.2.0/parameter.json", "properties": { "description": { - "type": "string", - "description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed." + "description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed.", + "type": "string" + }, + "$ref": { + "type": "string" }, "name": { - "type": "string", - "description": "The name of the parameter." + "description": "The name of the parameter.", + "type": "string" }, "schema": { "$ref": "http://asyncapi.com/definitions/1.2.0/schema.json" - }, - "$ref": { - "type": "string" } }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.2.0/parameter.json" -} \ No newline at end of file + "patternProperties": { + "^x-": { + "$ref": "http://asyncapi.com/definitions/1.2.0/vendorExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/1.2.0/parameters.json b/definitions/1.2.0/parameters.json index a51f3032..35437f9a 100644 --- a/definitions/1.2.0/parameters.json +++ b/definitions/1.2.0/parameters.json @@ -1,9 +1,9 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.2.0/parameters.json", + "description": "JSON objects describing re-usable topic parameters.", "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/1.2.0/parameter.json" - }, - "description": "JSON objects describing re-usable topic parameters.", - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.2.0/parameters.json" -} \ No newline at end of file + } +} diff --git a/definitions/1.2.0/schema.json b/definitions/1.2.0/schema.json index 9061a001..668bcb0f 100644 --- a/definitions/1.2.0/schema.json +++ b/definitions/1.2.0/schema.json @@ -1,51 +1,82 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.2.0/schema.json", "description": "A deterministic version of a JSON Schema object.", - "patternProperties": { - "^x-": { - "$ref": "http://asyncapi.com/definitions/1.2.0/vendorExtension.json" - } - }, + "type": "object", "properties": { - "$ref": { - "type": "string" - }, - "format": { - "type": "string" - }, "title": { "$ref": "http://json-schema.org/draft-04/schema#/properties/title" }, "description": { "$ref": "http://json-schema.org/draft-04/schema#/properties/description" }, + "readOnly": { + "default": false, + "type": "boolean" + }, "default": { "$ref": "http://json-schema.org/draft-04/schema#/properties/default" }, - "multipleOf": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/multipleOf" + "$ref": { + "type": "string" }, - "maximum": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/maximum" + "type": { + "$ref": "http://json-schema.org/draft-04/schema#/properties/type" + }, + "enum": { + "$ref": "http://json-schema.org/draft-04/schema#/properties/enum" + }, + "allOf": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "http://asyncapi.com/definitions/1.2.0/schema.json" + } + }, + "anyOf": { + "type": "array", + "minItems": 2, + "items": { + "$ref": "http://asyncapi.com/definitions/1.2.0/schema.json" + } + }, + "oneOf": { + "type": "array", + "minItems": 2, + "items": { + "$ref": "http://asyncapi.com/definitions/1.2.0/schema.json" + } + }, + "not": { + "$ref": "http://asyncapi.com/definitions/1.2.0/schema.json" }, "exclusiveMaximum": { "$ref": "http://json-schema.org/draft-04/schema#/properties/exclusiveMaximum" }, - "minimum": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/minimum" + "maximum": { + "$ref": "http://json-schema.org/draft-04/schema#/properties/maximum" }, "exclusiveMinimum": { "$ref": "http://json-schema.org/draft-04/schema#/properties/exclusiveMinimum" }, + "minimum": { + "$ref": "http://json-schema.org/draft-04/schema#/properties/minimum" + }, + "multipleOf": { + "$ref": "http://json-schema.org/draft-04/schema#/properties/multipleOf" + }, + "pattern": { + "$ref": "http://json-schema.org/draft-04/schema#/properties/pattern" + }, + "format": { + "type": "string" + }, "maxLength": { "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger" }, "minLength": { "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0" }, - "pattern": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/pattern" - }, "maxItems": { "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger" }, @@ -55,33 +86,8 @@ "uniqueItems": { "$ref": "http://json-schema.org/draft-04/schema#/properties/uniqueItems" }, - "maxProperties": { - "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger" - }, - "minProperties": { - "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0" - }, - "required": { - "$ref": "http://json-schema.org/draft-04/schema#/definitions/stringArray" - }, - "enum": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/enum" - }, - "additionalProperties": { - "anyOf": [ - { - "$ref": "http://asyncapi.com/definitions/1.2.0/schema.json" - }, - { - "type": "boolean" - } - ], - "default": {} - }, - "type": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/type" - }, "items": { + "default": {}, "anyOf": [ { "$ref": "http://asyncapi.com/definitions/1.2.0/schema.json" @@ -93,56 +99,50 @@ "$ref": "http://asyncapi.com/definitions/1.2.0/schema.json" } } - ], - "default": {} - }, - "allOf": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "http://asyncapi.com/definitions/1.2.0/schema.json" - } + ] }, - "oneOf": { - "type": "array", - "minItems": 2, - "items": { - "$ref": "http://asyncapi.com/definitions/1.2.0/schema.json" - } + "required": { + "$ref": "http://json-schema.org/draft-04/schema#/definitions/stringArray" }, - "anyOf": { - "type": "array", - "minItems": 2, - "items": { - "$ref": "http://asyncapi.com/definitions/1.2.0/schema.json" - } + "maxProperties": { + "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger" }, - "not": { - "$ref": "http://asyncapi.com/definitions/1.2.0/schema.json" + "minProperties": { + "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0" }, "properties": { + "default": {}, "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/1.2.0/schema.json" - }, - "default": {} + } + }, + "additionalProperties": { + "default": {}, + "anyOf": [ + { + "$ref": "http://asyncapi.com/definitions/1.2.0/schema.json" + }, + { + "type": "boolean" + } + ] }, "discriminator": { "type": "string" }, - "readOnly": { - "type": "boolean", - "default": false - }, - "xml": { - "$ref": "http://asyncapi.com/definitions/1.2.0/xml.json" - }, + "example": {}, "externalDocs": { "$ref": "http://asyncapi.com/definitions/1.2.0/externalDocs.json" }, - "example": {} + "xml": { + "$ref": "http://asyncapi.com/definitions/1.2.0/xml.json" + } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.2.0/schema.json" -} \ No newline at end of file + "patternProperties": { + "^x-": { + "$ref": "http://asyncapi.com/definitions/1.2.0/vendorExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/1.2.0/schemas.json b/definitions/1.2.0/schemas.json index 184f60f5..9e5fe254 100644 --- a/definitions/1.2.0/schemas.json +++ b/definitions/1.2.0/schemas.json @@ -1,9 +1,9 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.2.0/schemas.json", + "description": "JSON objects describing schemas the API uses.", "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/1.2.0/schema.json" - }, - "description": "JSON objects describing schemas the API uses.", - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.2.0/schemas.json" -} \ No newline at end of file + } +} diff --git a/definitions/1.2.0/server.json b/definitions/1.2.0/server.json index 3d50e6b3..d36c56ad 100644 --- a/definitions/1.2.0/server.json +++ b/definitions/1.2.0/server.json @@ -1,26 +1,19 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.2.0/server.json", "description": "An object representing a Server.", + "type": "object", "required": [ "url", "scheme" ], - "additionalProperties": false, - "patternProperties": { - "^x-": { - "$ref": "http://asyncapi.com/definitions/1.2.0/vendorExtension.json" - } - }, "properties": { - "url": { - "type": "string" - }, "description": { "type": "string" }, "scheme": { - "type": "string", "description": "The transfer protocol.", + "type": "string", "enum": [ "kafka", "kafka-secure", @@ -41,10 +34,17 @@ "schemeVersion": { "type": "string" }, + "url": { + "type": "string" + }, "variables": { "$ref": "http://asyncapi.com/definitions/1.2.0/serverVariables.json" } }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.2.0/server.json" -} \ No newline at end of file + "patternProperties": { + "^x-": { + "$ref": "http://asyncapi.com/definitions/1.2.0/vendorExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/1.2.0/serverVariable.json b/definitions/1.2.0/serverVariable.json index fc4bf8cc..99210d5c 100644 --- a/definitions/1.2.0/serverVariable.json +++ b/definitions/1.2.0/serverVariable.json @@ -1,28 +1,28 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.2.0/serverVariable.json", "description": "An object representing a Server Variable for server URL template substitution.", + "type": "object", "minProperties": 1, - "additionalProperties": false, - "patternProperties": { - "^x-": { - "$ref": "http://asyncapi.com/definitions/1.2.0/vendorExtension.json" - } - }, "properties": { - "enum": { - "type": "array", - "items": { - "type": "string" - }, - "uniqueItems": true + "description": { + "type": "string" }, "default": { "type": "string" }, - "description": { - "type": "string" + "enum": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } } }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.2.0/serverVariable.json" -} \ No newline at end of file + "patternProperties": { + "^x-": { + "$ref": "http://asyncapi.com/definitions/1.2.0/vendorExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/1.2.0/serverVariables.json b/definitions/1.2.0/serverVariables.json index 4449af60..ee7f5313 100644 --- a/definitions/1.2.0/serverVariables.json +++ b/definitions/1.2.0/serverVariables.json @@ -1,8 +1,8 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.2.0/serverVariables.json", "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/1.2.0/serverVariable.json" - }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.2.0/serverVariables.json" -} \ No newline at end of file + } +} diff --git a/definitions/1.2.0/stream.json b/definitions/1.2.0/stream.json index 9adf59f8..b7bb0624 100644 --- a/definitions/1.2.0/stream.json +++ b/definitions/1.2.0/stream.json @@ -1,26 +1,15 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.2.0/stream.json", "title": "Stream Object", "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-": { - "$ref": "http://asyncapi.com/definitions/1.2.0/vendorExtension.json" - } - }, "minProperties": 1, "properties": { "framing": { "title": "Stream Framing Object", "type": "object", - "patternProperties": { - "^x-": { - "$ref": "http://asyncapi.com/definitions/1.2.0/vendorExtension.json" - } - }, - "minProperties": 1, "oneOf": [ { - "additionalProperties": false, "properties": { "type": { "type": "string", @@ -29,17 +18,17 @@ ] }, "delimiter": { + "default": "\\r\\n", "type": "string", "enum": [ "\\r\\n", "\\n" - ], - "default": "\\r\\n" + ] } - } + }, + "additionalProperties": false }, { - "additionalProperties": false, "properties": { "type": { "type": "string", @@ -48,21 +37,28 @@ ] }, "delimiter": { + "default": "\\n\\n", "type": "string", "enum": [ "\\n\\n" - ], - "default": "\\n\\n" + ] } - } + }, + "additionalProperties": false } - ] + ], + "minProperties": 1, + "patternProperties": { + "^x-": { + "$ref": "http://asyncapi.com/definitions/1.2.0/vendorExtension.json" + } + } }, "read": { "title": "Stream Read Object", "type": "array", - "uniqueItems": true, "minItems": 1, + "uniqueItems": true, "items": { "$ref": "http://asyncapi.com/definitions/1.2.0/message.json" } @@ -70,13 +66,17 @@ "write": { "title": "Stream Write Object", "type": "array", - "uniqueItems": true, "minItems": 1, + "uniqueItems": true, "items": { "$ref": "http://asyncapi.com/definitions/1.2.0/message.json" } } }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.2.0/stream.json" -} \ No newline at end of file + "patternProperties": { + "^x-": { + "$ref": "http://asyncapi.com/definitions/1.2.0/vendorExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/1.2.0/symmetricEncryption.json b/definitions/1.2.0/symmetricEncryption.json index ae0e8d64..97df130e 100644 --- a/definitions/1.2.0/symmetricEncryption.json +++ b/definitions/1.2.0/symmetricEncryption.json @@ -1,23 +1,23 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.2.0/symmetricEncryption.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "symmetricEncryption" ] - }, - "description": { - "type": "string" } }, "patternProperties": { "^x-": {} }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.2.0/symmetricEncryption.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/1.2.0/tag.json b/definitions/1.2.0/tag.json index a821a884..cba6b250 100644 --- a/definitions/1.2.0/tag.json +++ b/definitions/1.2.0/tag.json @@ -1,18 +1,19 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.2.0/tag.json", "type": "object", - "additionalProperties": false, "required": [ "name" ], "properties": { - "name": { - "type": "string" - }, "description": { "type": "string" }, "externalDocs": { "$ref": "http://asyncapi.com/definitions/1.2.0/externalDocs.json" + }, + "name": { + "type": "string" } }, "patternProperties": { @@ -20,6 +21,5 @@ "$ref": "http://asyncapi.com/definitions/1.2.0/vendorExtension.json" } }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.2.0/tag.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/1.2.0/topicItem.json b/definitions/1.2.0/topicItem.json index 7ea7dc82..d431dd8c 100644 --- a/definitions/1.2.0/topicItem.json +++ b/definitions/1.2.0/topicItem.json @@ -1,20 +1,20 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.2.0/topicItem.json", "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-": { - "$ref": "http://asyncapi.com/definitions/1.2.0/vendorExtension.json" - } - }, "minProperties": 1, "properties": { + "deprecated": { + "default": false, + "type": "boolean" + }, "$ref": { "type": "string" }, "parameters": { "type": "array", - "uniqueItems": true, "minItems": 1, + "uniqueItems": true, "items": { "$ref": "http://asyncapi.com/definitions/1.2.0/parameter.json" } @@ -24,12 +24,12 @@ }, "subscribe": { "$ref": "http://asyncapi.com/definitions/1.2.0/operation.json" - }, - "deprecated": { - "type": "boolean", - "default": false } }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.2.0/topicItem.json" -} \ No newline at end of file + "patternProperties": { + "^x-": { + "$ref": "http://asyncapi.com/definitions/1.2.0/vendorExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/1.2.0/topics.json b/definitions/1.2.0/topics.json index 8587b7ba..b2a6d8cb 100644 --- a/definitions/1.2.0/topics.json +++ b/definitions/1.2.0/topics.json @@ -1,15 +1,15 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.2.0/topics.json", "description": "Relative paths to the individual topics. They must be relative to the 'baseTopic'.", + "type": "object", "patternProperties": { - "^x-": { - "$ref": "http://asyncapi.com/definitions/1.2.0/vendorExtension.json" - }, "^[^.]": { "$ref": "http://asyncapi.com/definitions/1.2.0/topicItem.json" + }, + "^x-": { + "$ref": "http://asyncapi.com/definitions/1.2.0/vendorExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.2.0/topics.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/1.2.0/userPassword.json b/definitions/1.2.0/userPassword.json index ad3586e9..cbb646d3 100644 --- a/definitions/1.2.0/userPassword.json +++ b/definitions/1.2.0/userPassword.json @@ -1,23 +1,23 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.2.0/userPassword.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "userPassword" ] - }, - "description": { - "type": "string" } }, "patternProperties": { "^x-": {} }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.2.0/userPassword.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/1.2.0/vendorExtension.json b/definitions/1.2.0/vendorExtension.json index eafb1bfd..f7bfcda5 100644 --- a/definitions/1.2.0/vendorExtension.json +++ b/definitions/1.2.0/vendorExtension.json @@ -1,7 +1,7 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.2.0/vendorExtension.json", "description": "Any property starting with x- is valid.", - "additionalProperties": true, "additionalItems": true, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.2.0/vendorExtension.json" -} \ No newline at end of file + "additionalProperties": true +} diff --git a/definitions/1.2.0/xml.json b/definitions/1.2.0/xml.json index aea49644..aa2fb817 100644 --- a/definitions/1.2.0/xml.json +++ b/definitions/1.2.0/xml.json @@ -1,7 +1,12 @@ { + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://asyncapi.com/definitions/1.2.0/xml.json", "type": "object", - "additionalProperties": false, "properties": { + "attribute": { + "default": false, + "type": "boolean" + }, "name": { "type": "string" }, @@ -11,15 +16,10 @@ "prefix": { "type": "string" }, - "attribute": { - "type": "boolean", - "default": false - }, "wrapped": { - "type": "boolean", - "default": false + "default": false, + "type": "boolean" } }, - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://asyncapi.com/definitions/1.2.0/xml.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc1/APIKeyHTTPSecurityScheme.json b/definitions/2.0.0-rc1/APIKeyHTTPSecurityScheme.json index d425aa29..53ac7704 100644 --- a/definitions/2.0.0-rc1/APIKeyHTTPSecurityScheme.json +++ b/definitions/2.0.0-rc1/APIKeyHTTPSecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc1/APIKeyHTTPSecurityScheme.json", "type": "object", "required": [ "type", @@ -6,15 +8,15 @@ "in" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "httpApiKey" ] }, - "name": { - "type": "string" - }, "in": { "type": "string", "enum": [ @@ -23,7 +25,7 @@ "cookie" ] }, - "description": { + "name": { "type": "string" } }, @@ -32,7 +34,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc1/APIKeyHTTPSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc1/BearerHTTPSecurityScheme.json b/definitions/2.0.0-rc1/BearerHTTPSecurityScheme.json index 8d1cc72f..1f4bcb6b 100644 --- a/definitions/2.0.0-rc1/BearerHTTPSecurityScheme.json +++ b/definitions/2.0.0-rc1/BearerHTTPSecurityScheme.json @@ -1,27 +1,29 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc1/BearerHTTPSecurityScheme.json", "type": "object", "required": [ "type", "scheme" ], "properties": { - "scheme": { + "description": { + "type": "string" + }, + "type": { "type": "string", "enum": [ - "bearer" + "http" ] }, "bearerFormat": { "type": "string" }, - "type": { + "scheme": { "type": "string", "enum": [ - "http" + "bearer" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -29,7 +31,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc1/BearerHTTPSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc1/HTTPSecurityScheme.json b/definitions/2.0.0-rc1/HTTPSecurityScheme.json index 67f6597b..153729e3 100644 --- a/definitions/2.0.0-rc1/HTTPSecurityScheme.json +++ b/definitions/2.0.0-rc1/HTTPSecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc1/HTTPSecurityScheme.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/NonBearerHTTPSecurityScheme.json" @@ -9,7 +11,5 @@ { "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/APIKeyHTTPSecurityScheme.json" } - ], - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc1/HTTPSecurityScheme.json" -} \ No newline at end of file + ] +} diff --git a/definitions/2.0.0-rc1/NonBearerHTTPSecurityScheme.json b/definitions/2.0.0-rc1/NonBearerHTTPSecurityScheme.json index d1e68ba6..99aa4cbc 100644 --- a/definitions/2.0.0-rc1/NonBearerHTTPSecurityScheme.json +++ b/definitions/2.0.0-rc1/NonBearerHTTPSecurityScheme.json @@ -1,4 +1,7 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc1/NonBearerHTTPSecurityScheme.json", + "type": "object", "not": { "type": "object", "properties": { @@ -10,15 +13,11 @@ } } }, - "type": "object", "required": [ "scheme", "type" ], "properties": { - "scheme": { - "type": "string" - }, "description": { "type": "string" }, @@ -27,6 +26,9 @@ "enum": [ "http" ] + }, + "scheme": { + "type": "string" } }, "patternProperties": { @@ -34,7 +36,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc1/NonBearerHTTPSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc1/Reference.json b/definitions/2.0.0-rc1/Reference.json index aca06c2f..66c29634 100644 --- a/definitions/2.0.0-rc1/Reference.json +++ b/definitions/2.0.0-rc1/Reference.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc1/Reference.json", "type": "object", "required": [ "$ref" @@ -7,7 +9,5 @@ "$ref": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/ReferenceObject.json" } - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc1/Reference.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.0.0-rc1/ReferenceObject.json b/definitions/2.0.0-rc1/ReferenceObject.json index ae779fa0..f395c380 100644 --- a/definitions/2.0.0-rc1/ReferenceObject.json +++ b/definitions/2.0.0-rc1/ReferenceObject.json @@ -1,6 +1,6 @@ { - "type": "string", - "format": "uri", "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc1/ReferenceObject.json" -} \ No newline at end of file + "$id": "http://asyncapi.com/definitions/2.0.0-rc1/ReferenceObject.json", + "type": "string", + "format": "uri" +} diff --git a/definitions/2.0.0-rc1/SecurityRequirement.json b/definitions/2.0.0-rc1/SecurityRequirement.json index 9595ddce..dbe0e8d9 100644 --- a/definitions/2.0.0-rc1/SecurityRequirement.json +++ b/definitions/2.0.0-rc1/SecurityRequirement.json @@ -1,12 +1,12 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc1/SecurityRequirement.json", "type": "object", "additionalProperties": { "type": "array", + "uniqueItems": true, "items": { "type": "string" - }, - "uniqueItems": true - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc1/SecurityRequirement.json" -} \ No newline at end of file + } + } +} diff --git a/definitions/2.0.0-rc1/SecurityScheme.json b/definitions/2.0.0-rc1/SecurityScheme.json index 225f3659..c96b56be 100644 --- a/definitions/2.0.0-rc1/SecurityScheme.json +++ b/definitions/2.0.0-rc1/SecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc1/SecurityScheme.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/userPassword.json" @@ -24,7 +26,5 @@ { "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/openIdConnect.json" } - ], - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc1/SecurityScheme.json" -} \ No newline at end of file + ] +} diff --git a/definitions/2.0.0-rc1/X509.json b/definitions/2.0.0-rc1/X509.json index 5f7f1a9f..e314a068 100644 --- a/definitions/2.0.0-rc1/X509.json +++ b/definitions/2.0.0-rc1/X509.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc1/X509.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "X509" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,7 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc1/X509.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc1/apiKey.json b/definitions/2.0.0-rc1/apiKey.json index 73f9d0fc..ffa1597a 100644 --- a/definitions/2.0.0-rc1/apiKey.json +++ b/definitions/2.0.0-rc1/apiKey.json @@ -1,10 +1,15 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc1/apiKey.json", "type": "object", "required": [ "type", "in" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ @@ -17,9 +22,6 @@ "user", "password" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -27,7 +29,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc1/apiKey.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc1/asymmetricEncryption.json b/definitions/2.0.0-rc1/asymmetricEncryption.json index fc0994ed..68bb9825 100644 --- a/definitions/2.0.0-rc1/asymmetricEncryption.json +++ b/definitions/2.0.0-rc1/asymmetricEncryption.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc1/asymmetricEncryption.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "asymmetricEncryption" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,7 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc1/asymmetricEncryption.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc1/asyncapi.json b/definitions/2.0.0-rc1/asyncapi.json index dff177a1..728e2ef9 100644 --- a/definitions/2.0.0-rc1/asyncapi.json +++ b/definitions/2.0.0-rc1/asyncapi.json @@ -1,7 +1,7 @@ { - "title": "AsyncAPI 2.0.0-rc1 schema.", "$schema": "http://json-schema.org/draft-07/schema#", "$id": "http://asyncapi.com/definitions/2.0.0-rc1/asyncapi.json", + "title": "AsyncAPI 2.0.0-rc1 schema.", "type": "object", "required": [ "asyncapi", @@ -9,53 +9,53 @@ "info", "channels" ], - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/specificationExtension.json" - } - }, "properties": { + "id": { + "description": "A unique id representing the application.", + "type": "string", + "format": "uri-reference" + }, "asyncapi": { + "description": "The AsyncAPI specification version of this document.", "type": "string", "enum": [ "2.0.0-rc1" - ], - "description": "The AsyncAPI specification version of this document." + ] }, - "id": { - "type": "string", - "description": "A unique id representing the application.", - "format": "uri-reference" + "channels": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/channels.json" + }, + "components": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/components.json" + }, + "defaultContentType": { + "type": "string" + }, + "externalDocs": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/externalDocs.json" }, "info": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/info.json" }, "servers": { "type": "array", + "uniqueItems": true, "items": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/server.json" - }, - "uniqueItems": true - }, - "defaultContentType": { - "type": "string" - }, - "channels": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/channels.json" - }, - "components": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/components.json" + } }, "tags": { "type": "array", + "uniqueItems": true, "items": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/tag.json" - }, - "uniqueItems": true - }, - "externalDocs": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/externalDocs.json" + } } - } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/specificationExtension.json" + } + }, + "additionalProperties": false } diff --git a/definitions/2.0.0-rc1/channelItem.json b/definitions/2.0.0-rc1/channelItem.json index 86588d37..8decd9c1 100644 --- a/definitions/2.0.0-rc1/channelItem.json +++ b/definitions/2.0.0-rc1/channelItem.json @@ -1,36 +1,36 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc1/channelItem.json", "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/specificationExtension.json" - } - }, "minProperties": 1, "properties": { + "deprecated": { + "default": false, + "type": "boolean" + }, "$ref": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/ReferenceObject.json" }, "parameters": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/parameters.json" }, - "publish": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/operation.json" - }, - "subscribe": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/operation.json" - }, - "deprecated": { - "type": "boolean", - "default": false - }, "protocolInfo": { "type": "object", "additionalProperties": { "type": "object" } + }, + "publish": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/operation.json" + }, + "subscribe": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/operation.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc1/channelItem.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc1/channels.json b/definitions/2.0.0-rc1/channels.json index cc175263..9f7a9846 100644 --- a/definitions/2.0.0-rc1/channels.json +++ b/definitions/2.0.0-rc1/channels.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc1/channels.json", "type": "object", "propertyNames": { "type": "string", @@ -7,7 +9,5 @@ }, "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/channelItem.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc1/channels.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.0.0-rc1/components.json b/definitions/2.0.0-rc1/components.json index 3d89e26f..56e8683b 100644 --- a/definitions/2.0.0-rc1/components.json +++ b/definitions/2.0.0-rc1/components.json @@ -1,15 +1,10 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc1/components.json", "description": "An object to hold a set of reusable objects for different aspects of the AsyncAPI Specification.", - "additionalProperties": false, + "type": "object", "properties": { - "schemas": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/schemas.json" - }, - "messages": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/messages.json" - }, - "securitySchemes": { + "correlationIds": { "type": "object", "patternProperties": { "^[\\w\\d\\.\\-_]+$": { @@ -18,16 +13,22 @@ "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/Reference.json" }, { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/SecurityScheme.json" + "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/correlationId.json" } ] } } }, + "messages": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/messages.json" + }, "parameters": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/parameters.json" }, - "correlationIds": { + "schemas": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/schemas.json" + }, + "securitySchemes": { "type": "object", "patternProperties": { "^[\\w\\d\\.\\-_]+$": { @@ -36,7 +37,7 @@ "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/Reference.json" }, { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/correlationId.json" + "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/SecurityScheme.json" } ] } @@ -46,6 +47,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/traits.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc1/components.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc1/contact.json b/definitions/2.0.0-rc1/contact.json index 1366cd98..fe9c25fc 100644 --- a/definitions/2.0.0-rc1/contact.json +++ b/definitions/2.0.0-rc1/contact.json @@ -1,21 +1,22 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc1/contact.json", "description": "Contact information for the owners of the API.", - "additionalProperties": false, + "type": "object", "properties": { - "name": { + "email": { + "description": "The email address of the contact person/organization.", "type": "string", - "description": "The identifying name of the contact person/organization." + "format": "email" + }, + "name": { + "description": "The identifying name of the contact person/organization.", + "type": "string" }, "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" + "format": "uri" } }, "patternProperties": { @@ -23,6 +24,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/specificationExtension.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc1/contact.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc1/correlationId.json b/definitions/2.0.0-rc1/correlationId.json index 75d9bb22..ff3023f4 100644 --- a/definitions/2.0.0-rc1/correlationId.json +++ b/definitions/2.0.0-rc1/correlationId.json @@ -1,25 +1,25 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc1/correlationId.json", "type": "object", "required": [ "location" ], - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/specificationExtension.json" - } - }, "properties": { "description": { - "type": "string", - "description": "A optional description of the correlation ID. GitHub Flavored Markdown is allowed." + "description": "A optional description of the correlation ID. GitHub Flavored Markdown is allowed.", + "type": "string" }, "location": { - "type": "string", "description": "A runtime expression that specifies the location of the correlation ID", + "type": "string", "pattern": "^\\$message\\.(header|payload)#(/\\w+)+" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc1/correlationId.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc1/externalDocs.json b/definitions/2.0.0-rc1/externalDocs.json index 47f29c2c..30d39b15 100644 --- a/definitions/2.0.0-rc1/externalDocs.json +++ b/definitions/2.0.0-rc1/externalDocs.json @@ -1,7 +1,8 @@ { - "type": "object", - "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc1/externalDocs.json", "description": "information about external documentation", + "type": "object", "required": [ "url" ], @@ -19,6 +20,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/specificationExtension.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc1/externalDocs.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc1/info.json b/definitions/2.0.0-rc1/info.json index 04c147fd..78969036 100644 --- a/definitions/2.0.0-rc1/info.json +++ b/definitions/2.0.0-rc1/info.json @@ -1,41 +1,41 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc1/info.json", "description": "General information about the API.", + "type": "object", "required": [ "version", "title" ], - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/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": "A unique and precise title of the API.", + "type": "string" }, "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" + "description": "A longer description of the API. Should be different from the title. CommonMark is allowed.", + "type": "string" }, "contact": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/contact.json" }, "license": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/license.json" + }, + "termsOfService": { + "description": "A URL to the Terms of Service for the API. MUST be in the format of a URL.", + "type": "string", + "format": "uri" + }, + "version": { + "description": "A semantic version number of the API.", + "type": "string" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc1/info.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc1/license.json b/definitions/2.0.0-rc1/license.json index 5de88bf6..a492d2d1 100644 --- a/definitions/2.0.0-rc1/license.json +++ b/definitions/2.0.0-rc1/license.json @@ -1,17 +1,18 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc1/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." + "description": "The name of the license type. It's encouraged to use an OSI compatible license.", + "type": "string" }, "url": { - "type": "string", "description": "The URL pointing to the license.", + "type": "string", "format": "uri" } }, @@ -20,6 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/specificationExtension.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc1/license.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc1/message.json b/definitions/2.0.0-rc1/message.json index e417596d..50e02458 100644 --- a/definitions/2.0.0-rc1/message.json +++ b/definitions/2.0.0-rc1/message.json @@ -1,32 +1,29 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc1/message.json", "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/specificationExtension.json" - } - }, "properties": { - "schemaFormat": { + "title": { + "description": "A human-friendly title for the message.", "type": "string" }, - "contentType": { + "description": { + "description": "A longer description of the message. CommonMark is allowed.", "type": "string" }, - "headers": { - "type": "object", - "additionalProperties": { - "oneOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/Reference.json" - }, - { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/schema.json" - } - ] + "examples": { + "type": "array", + "items": { + "type": "object" } }, - "payload": {}, + "deprecated": { + "default": false, + "type": "boolean" + }, + "contentType": { + "type": "string" + }, "correlationId": { "oneOf": [ { @@ -37,48 +34,47 @@ } ] }, - "tags": { - "type": "array", - "items": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/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.0.0-rc1/externalDocs.json" }, - "deprecated": { - "type": "boolean", - "default": false - }, - "examples": { - "type": "array", - "items": { - "type": "object" + "headers": { + "type": "object", + "additionalProperties": { + "oneOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/Reference.json" + }, + { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/schema.json" + } + ] } }, + "name": { + "description": "Name of the message.", + "type": "string" + }, + "payload": {}, "protocolInfo": { "type": "object", "additionalProperties": { "type": "object" } }, + "schemaFormat": { + "type": "string" + }, + "summary": { + "description": "A brief summary of the message.", + "type": "string" + }, + "tags": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/tag.json" + } + }, "traits": { "type": "array", "items": { @@ -93,6 +89,10 @@ } } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc1/message.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc1/messageTrait.json b/definitions/2.0.0-rc1/messageTrait.json index a6adc081..0984a4d3 100644 --- a/definitions/2.0.0-rc1/messageTrait.json +++ b/definitions/2.0.0-rc1/messageTrait.json @@ -1,31 +1,29 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc1/messageTrait.json", "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/specificationExtension.json" - } - }, "properties": { - "schemaFormat": { + "title": { + "description": "A human-friendly title for the message.", "type": "string" }, - "contentType": { + "description": { + "description": "A longer description of the message. CommonMark is allowed.", "type": "string" }, - "headers": { - "type": "object", - "additionalProperties": { - "oneOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/Reference.json" - }, - { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/schema.json" - } - ] + "examples": { + "type": "array", + "items": { + "type": "object" } }, + "deprecated": { + "default": false, + "type": "boolean" + }, + "contentType": { + "type": "string" + }, "correlationId": { "oneOf": [ { @@ -36,49 +34,51 @@ } ] }, - "tags": { - "type": "array", - "items": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/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.0.0-rc1/externalDocs.json" }, - "deprecated": { - "type": "boolean", - "default": false - }, - "examples": { - "type": "array", - "items": { - "type": "object" + "headers": { + "type": "object", + "additionalProperties": { + "oneOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/Reference.json" + }, + { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/schema.json" + } + ] } }, + "name": { + "description": "Name of the message.", + "type": "string" + }, "protocolInfo": { "type": "object", "additionalProperties": { "type": "object" } + }, + "schemaFormat": { + "type": "string" + }, + "summary": { + "description": "A brief summary of the message.", + "type": "string" + }, + "tags": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/tag.json" + } } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc1/messageTrait.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc1/messages.json b/definitions/2.0.0-rc1/messages.json index c8b2c17e..51c151b7 100644 --- a/definitions/2.0.0-rc1/messages.json +++ b/definitions/2.0.0-rc1/messages.json @@ -1,9 +1,9 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc1/messages.json", + "description": "JSON objects describing the messages being consumed and produced by the API.", "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/message.json" - }, - "description": "JSON objects describing the messages being consumed and produced by the API.", - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc1/messages.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.0.0-rc1/oauth2Flow.json b/definitions/2.0.0-rc1/oauth2Flow.json index 396d0637..428d445c 100644 --- a/definitions/2.0.0-rc1/oauth2Flow.json +++ b/definitions/2.0.0-rc1/oauth2Flow.json @@ -1,20 +1,22 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc1/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.0.0-rc1/oauth2Scopes.json" + }, + "tokenUrl": { + "type": "string", + "format": "uri" } }, "patternProperties": { @@ -22,7 +24,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc1/oauth2Flow.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc1/oauth2Flows.json b/definitions/2.0.0-rc1/oauth2Flows.json index 730fcf3a..bb1e7be3 100644 --- a/definitions/2.0.0-rc1/oauth2Flows.json +++ b/definitions/2.0.0-rc1/oauth2Flows.json @@ -1,23 +1,26 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc1/oauth2Flows.json", "type": "object", "required": [ "type", "flows" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "oauth2" ] }, - "description": { - "type": "string" - }, "flows": { "type": "object", + "minProperties": 1, "properties": { - "implicit": { + "authorizationCode": { "allOf": [ { "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/oauth2Flow.json" @@ -25,19 +28,13 @@ { "required": [ "authorizationUrl", + "tokenUrl", "scopes" ] - }, - { - "not": { - "required": [ - "tokenUrl" - ] - } } ] }, - "password": { + "clientCredentials": { "allOf": [ { "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/oauth2Flow.json" @@ -57,50 +54,53 @@ } ] }, - "clientCredentials": { + "implicit": { "allOf": [ { "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/oauth2Flow.json" }, { "required": [ - "tokenUrl", + "authorizationUrl", "scopes" ] }, { "not": { "required": [ - "authorizationUrl" + "tokenUrl" ] } } ] }, - "authorizationCode": { + "password": { "allOf": [ { "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/oauth2Flow.json" }, { "required": [ - "authorizationUrl", "tokenUrl", "scopes" ] + }, + { + "not": { + "required": [ + "authorizationUrl" + ] + } } ] } }, - "additionalProperties": false, - "minProperties": 1 + "additionalProperties": false } }, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/specificationExtension.json" } - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc1/oauth2Flows.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.0.0-rc1/oauth2Scopes.json b/definitions/2.0.0-rc1/oauth2Scopes.json index 1e5569fa..727d367e 100644 --- a/definitions/2.0.0-rc1/oauth2Scopes.json +++ b/definitions/2.0.0-rc1/oauth2Scopes.json @@ -1,8 +1,8 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc1/oauth2Scopes.json", "type": "object", "additionalProperties": { "type": "string" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc1/oauth2Scopes.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.0.0-rc1/openIdConnect.json b/definitions/2.0.0-rc1/openIdConnect.json index 7bc8a4a0..faf8a43c 100644 --- a/definitions/2.0.0-rc1/openIdConnect.json +++ b/definitions/2.0.0-rc1/openIdConnect.json @@ -1,19 +1,21 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc1/openIdConnect.json", "type": "object", "required": [ "type", "openIdConnectUrl" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "openIdConnect" ] }, - "description": { - "type": "string" - }, "openIdConnectUrl": { "type": "string", "format": "uri" @@ -24,7 +26,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc1/openIdConnect.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc1/operation.json b/definitions/2.0.0-rc1/operation.json index fa9f566e..ce319a1e 100644 --- a/definitions/2.0.0-rc1/operation.json +++ b/definitions/2.0.0-rc1/operation.json @@ -1,50 +1,14 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc1/operation.json", "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/specificationExtension.json" - } - }, "properties": { - "traits": { - "type": "array", - "items": { - "oneOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/Reference.json" - }, - { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/operationTrait.json" - } - ] - } - }, - "summary": { - "type": "string" - }, "description": { "type": "string" }, - "tags": { - "type": "array", - "items": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/tag.json" - }, - "uniqueItems": true - }, "externalDocs": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/externalDocs.json" }, - "operationId": { - "type": "string" - }, - "protocolInfo": { - "type": "object", - "additionalProperties": { - "type": "object" - } - }, "message": { "oneOf": [ { @@ -55,12 +19,6 @@ "required": [ "oneOf" ], - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/specificationExtension.json" - } - }, "properties": { "oneOf": { "type": "array", @@ -69,11 +27,53 @@ "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/message.json" } } - } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/specificationExtension.json" + } + }, + "additionalProperties": false } ] + }, + "operationId": { + "type": "string" + }, + "protocolInfo": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "summary": { + "type": "string" + }, + "tags": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/tag.json" + } + }, + "traits": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/Reference.json" + }, + { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/operationTrait.json" + } + ] + } } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc1/operation.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc1/operationTrait.json b/definitions/2.0.0-rc1/operationTrait.json index 053a6a1c..0685ac9b 100644 --- a/definitions/2.0.0-rc1/operationTrait.json +++ b/definitions/2.0.0-rc1/operationTrait.json @@ -1,25 +1,11 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc1/operationTrait.json", "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/specificationExtension.json" - } - }, "properties": { - "summary": { - "type": "string" - }, "description": { "type": "string" }, - "tags": { - "type": "array", - "items": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/tag.json" - }, - "uniqueItems": true - }, "externalDocs": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/externalDocs.json" }, @@ -31,8 +17,22 @@ "additionalProperties": { "type": "object" } + }, + "summary": { + "type": "string" + }, + "tags": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/tag.json" + } } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc1/operationTrait.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc1/parameter.json b/definitions/2.0.0-rc1/parameter.json index 97118c20..3ce56643 100644 --- a/definitions/2.0.0-rc1/parameter.json +++ b/definitions/2.0.0-rc1/parameter.json @@ -1,26 +1,26 @@ { - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/specificationExtension.json" - } - }, + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc1/parameter.json", "properties": { "description": { - "type": "string", - "description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed." + "description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed.", + "type": "string" + }, + "$ref": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/ReferenceObject.json" }, "name": { - "type": "string", - "description": "The name of the parameter." + "description": "The name of the parameter.", + "type": "string" }, "schema": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/schema.json" - }, - "$ref": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/ReferenceObject.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc1/parameter.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc1/parameters.json b/definitions/2.0.0-rc1/parameters.json index f2c76621..bbc7be01 100644 --- a/definitions/2.0.0-rc1/parameters.json +++ b/definitions/2.0.0-rc1/parameters.json @@ -1,4 +1,7 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc1/parameters.json", + "description": "JSON objects describing re-usable channel parameters.", "type": "object", "additionalProperties": { "oneOf": [ @@ -9,8 +12,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/parameter.json" } ] - }, - "description": "JSON objects describing re-usable channel parameters.", - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc1/parameters.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.0.0-rc1/schema.json b/definitions/2.0.0-rc1/schema.json index 44cded50..a224ee43 100644 --- a/definitions/2.0.0-rc1/schema.json +++ b/definitions/2.0.0-rc1/schema.json @@ -1,51 +1,90 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc1/schema.json", "description": "A deterministic version of a JSON Schema object.", - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/specificationExtension.json" - } - }, + "type": "object", "properties": { - "$ref": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/ReferenceObject.json" - }, - "format": { - "type": "string" - }, "title": { "$ref": "http://json-schema.org/draft-04/schema#/properties/title" }, "description": { "$ref": "http://json-schema.org/draft-04/schema#/properties/description" }, + "examples": { + "type": "array", + "items": {} + }, + "deprecated": { + "default": false, + "type": "boolean" + }, + "readOnly": { + "default": false, + "type": "boolean" + }, "default": { "$ref": "http://json-schema.org/draft-04/schema#/properties/default" }, - "multipleOf": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/multipleOf" + "$ref": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/ReferenceObject.json" }, - "maximum": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/maximum" + "type": { + "$ref": "http://json-schema.org/draft-04/schema#/properties/type" + }, + "enum": { + "$ref": "http://json-schema.org/draft-04/schema#/properties/enum" + }, + "allOf": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/schema.json" + } + }, + "anyOf": { + "type": "array", + "minItems": 2, + "items": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/schema.json" + } + }, + "oneOf": { + "type": "array", + "minItems": 2, + "items": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/schema.json" + } + }, + "not": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/schema.json" }, "exclusiveMaximum": { "$ref": "http://json-schema.org/draft-04/schema#/properties/exclusiveMaximum" }, - "minimum": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/minimum" + "maximum": { + "$ref": "http://json-schema.org/draft-04/schema#/properties/maximum" }, "exclusiveMinimum": { "$ref": "http://json-schema.org/draft-04/schema#/properties/exclusiveMinimum" }, + "minimum": { + "$ref": "http://json-schema.org/draft-04/schema#/properties/minimum" + }, + "multipleOf": { + "$ref": "http://json-schema.org/draft-04/schema#/properties/multipleOf" + }, + "pattern": { + "$ref": "http://json-schema.org/draft-04/schema#/properties/pattern" + }, + "format": { + "type": "string" + }, "maxLength": { "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger" }, "minLength": { "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0" }, - "pattern": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/pattern" - }, "maxItems": { "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger" }, @@ -55,37 +94,8 @@ "uniqueItems": { "$ref": "http://json-schema.org/draft-04/schema#/properties/uniqueItems" }, - "maxProperties": { - "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger" - }, - "minProperties": { - "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0" - }, - "required": { - "$ref": "http://json-schema.org/draft-04/schema#/definitions/stringArray" - }, - "enum": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/enum" - }, - "deprecated": { - "type": "boolean", - "default": false - }, - "additionalProperties": { - "anyOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/schema.json" - }, - { - "type": "boolean" - } - ], - "default": {} - }, - "type": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/type" - }, "items": { + "default": {}, "anyOf": [ { "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/schema.json" @@ -97,60 +107,50 @@ "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/schema.json" } } - ], - "default": {} - }, - "allOf": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/schema.json" - } + ] }, - "oneOf": { - "type": "array", - "minItems": 2, - "items": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/schema.json" - } + "required": { + "$ref": "http://json-schema.org/draft-04/schema#/definitions/stringArray" }, - "anyOf": { - "type": "array", - "minItems": 2, - "items": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/schema.json" - } + "maxProperties": { + "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger" }, - "not": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/schema.json" + "minProperties": { + "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0" }, "properties": { + "default": {}, "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/schema.json" - }, - "default": {} + } + }, + "additionalProperties": { + "default": {}, + "anyOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/schema.json" + }, + { + "type": "boolean" + } + ] }, "discriminator": { "type": "string" }, - "readOnly": { - "type": "boolean", - "default": false - }, - "xml": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/xml.json" - }, + "example": {}, "externalDocs": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/externalDocs.json" }, - "example": {}, - "examples": { - "type": "array", - "items": {} + "xml": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/xml.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc1/schema.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc1/schemas.json b/definitions/2.0.0-rc1/schemas.json index e8a37c8e..1261e65e 100644 --- a/definitions/2.0.0-rc1/schemas.json +++ b/definitions/2.0.0-rc1/schemas.json @@ -1,9 +1,9 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc1/schemas.json", + "description": "JSON objects describing schemas the API uses.", "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/schema.json" - }, - "description": "JSON objects describing schemas the API uses.", - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc1/schemas.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.0.0-rc1/server.json b/definitions/2.0.0-rc1/server.json index 7b58b29d..65354fa7 100644 --- a/definitions/2.0.0-rc1/server.json +++ b/definitions/2.0.0-rc1/server.json @@ -1,44 +1,44 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc1/server.json", "description": "An object representing a Server.", + "type": "object", "required": [ "url", "protocol" ], - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/specificationExtension.json" - } - }, "properties": { - "url": { - "type": "string" - }, "description": { "type": "string" }, - "protocol": { + "baseChannel": { "type": "string", - "description": "The transfer protocol." + "x-format": "uri-path" }, - "protocolVersion": { + "protocol": { + "description": "The transfer protocol.", "type": "string" }, - "variables": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/serverVariables.json" - }, - "baseChannel": { - "type": "string", - "x-format": "uri-path" + "protocolVersion": { + "type": "string" }, "security": { "type": "array", "items": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/SecurityRequirement.json" } + }, + "url": { + "type": "string" + }, + "variables": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/serverVariables.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc1/server.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc1/serverVariable.json b/definitions/2.0.0-rc1/serverVariable.json index 19ebaa99..4bcee7b5 100644 --- a/definitions/2.0.0-rc1/serverVariable.json +++ b/definitions/2.0.0-rc1/serverVariable.json @@ -1,34 +1,34 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc1/serverVariable.json", "description": "An object representing a Server Variable for server URL template substitution.", + "type": "object", "minProperties": 1, - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/specificationExtension.json" - } - }, "properties": { - "enum": { + "description": { + "type": "string" + }, + "examples": { "type": "array", "items": { "type": "string" - }, - "uniqueItems": true + } }, "default": { "type": "string" }, - "description": { - "type": "string" - }, - "examples": { + "enum": { "type": "array", + "uniqueItems": true, "items": { "type": "string" } } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc1/serverVariable.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc1/serverVariables.json b/definitions/2.0.0-rc1/serverVariables.json index f49ff468..a7afc4e1 100644 --- a/definitions/2.0.0-rc1/serverVariables.json +++ b/definitions/2.0.0-rc1/serverVariables.json @@ -1,8 +1,8 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc1/serverVariables.json", "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/serverVariable.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc1/serverVariables.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.0.0-rc1/specificationExtension.json b/definitions/2.0.0-rc1/specificationExtension.json index 64894f22..e8a58f71 100644 --- a/definitions/2.0.0-rc1/specificationExtension.json +++ b/definitions/2.0.0-rc1/specificationExtension.json @@ -1,7 +1,7 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc1/specificationExtension.json", "description": "Any property starting with x- is valid.", - "additionalProperties": true, "additionalItems": true, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc1/specificationExtension.json" -} \ No newline at end of file + "additionalProperties": true +} diff --git a/definitions/2.0.0-rc1/symmetricEncryption.json b/definitions/2.0.0-rc1/symmetricEncryption.json index b6364002..b9e9241b 100644 --- a/definitions/2.0.0-rc1/symmetricEncryption.json +++ b/definitions/2.0.0-rc1/symmetricEncryption.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc1/symmetricEncryption.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "symmetricEncryption" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,7 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc1/symmetricEncryption.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc1/tag.json b/definitions/2.0.0-rc1/tag.json index 6cde7b2c..bf3c29cb 100644 --- a/definitions/2.0.0-rc1/tag.json +++ b/definitions/2.0.0-rc1/tag.json @@ -1,18 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc1/tag.json", "type": "object", - "additionalProperties": false, "required": [ "name" ], "properties": { - "name": { - "type": "string" - }, "description": { "type": "string" }, "externalDocs": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/externalDocs.json" + }, + "name": { + "type": "string" } }, "patternProperties": { @@ -20,6 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/specificationExtension.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc1/tag.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc1/traits.json b/definitions/2.0.0-rc1/traits.json index 59a7632e..72688b02 100644 --- a/definitions/2.0.0-rc1/traits.json +++ b/definitions/2.0.0-rc1/traits.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc1/traits.json", "type": "object", "additionalProperties": { "anyOf": [ @@ -9,7 +11,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/messageTrait.json" } ] - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc1/traits.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.0.0-rc1/userPassword.json b/definitions/2.0.0-rc1/userPassword.json index 808c7732..047f8189 100644 --- a/definitions/2.0.0-rc1/userPassword.json +++ b/definitions/2.0.0-rc1/userPassword.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc1/userPassword.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "userPassword" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,7 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0-rc1/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc1/userPassword.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc1/xml.json b/definitions/2.0.0-rc1/xml.json index babc7944..7684bb5a 100644 --- a/definitions/2.0.0-rc1/xml.json +++ b/definitions/2.0.0-rc1/xml.json @@ -1,7 +1,12 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc1/xml.json", "type": "object", - "additionalProperties": false, "properties": { + "attribute": { + "default": false, + "type": "boolean" + }, "name": { "type": "string" }, @@ -11,15 +16,10 @@ "prefix": { "type": "string" }, - "attribute": { - "type": "boolean", - "default": false - }, "wrapped": { - "type": "boolean", - "default": false + "default": false, + "type": "boolean" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc1/xml.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc2/APIKeyHTTPSecurityScheme.json b/definitions/2.0.0-rc2/APIKeyHTTPSecurityScheme.json index a3ad8e89..19a52097 100644 --- a/definitions/2.0.0-rc2/APIKeyHTTPSecurityScheme.json +++ b/definitions/2.0.0-rc2/APIKeyHTTPSecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc2/APIKeyHTTPSecurityScheme.json", "type": "object", "required": [ "type", @@ -6,15 +8,15 @@ "in" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "httpApiKey" ] }, - "name": { - "type": "string" - }, "in": { "type": "string", "enum": [ @@ -23,7 +25,7 @@ "cookie" ] }, - "description": { + "name": { "type": "string" } }, @@ -32,7 +34,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc2/APIKeyHTTPSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc2/BearerHTTPSecurityScheme.json b/definitions/2.0.0-rc2/BearerHTTPSecurityScheme.json index 54cd3159..3d18cdde 100644 --- a/definitions/2.0.0-rc2/BearerHTTPSecurityScheme.json +++ b/definitions/2.0.0-rc2/BearerHTTPSecurityScheme.json @@ -1,27 +1,29 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc2/BearerHTTPSecurityScheme.json", "type": "object", "required": [ "type", "scheme" ], "properties": { - "scheme": { + "description": { + "type": "string" + }, + "type": { "type": "string", "enum": [ - "bearer" + "http" ] }, "bearerFormat": { "type": "string" }, - "type": { + "scheme": { "type": "string", "enum": [ - "http" + "bearer" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -29,7 +31,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc2/BearerHTTPSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc2/HTTPSecurityScheme.json b/definitions/2.0.0-rc2/HTTPSecurityScheme.json index 5d794713..e306c168 100644 --- a/definitions/2.0.0-rc2/HTTPSecurityScheme.json +++ b/definitions/2.0.0-rc2/HTTPSecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc2/HTTPSecurityScheme.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/NonBearerHTTPSecurityScheme.json" @@ -9,7 +11,5 @@ { "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/APIKeyHTTPSecurityScheme.json" } - ], - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc2/HTTPSecurityScheme.json" -} \ No newline at end of file + ] +} diff --git a/definitions/2.0.0-rc2/NonBearerHTTPSecurityScheme.json b/definitions/2.0.0-rc2/NonBearerHTTPSecurityScheme.json index 6363b58f..0c8bba3d 100644 --- a/definitions/2.0.0-rc2/NonBearerHTTPSecurityScheme.json +++ b/definitions/2.0.0-rc2/NonBearerHTTPSecurityScheme.json @@ -1,4 +1,7 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc2/NonBearerHTTPSecurityScheme.json", + "type": "object", "not": { "type": "object", "properties": { @@ -10,15 +13,11 @@ } } }, - "type": "object", "required": [ "scheme", "type" ], "properties": { - "scheme": { - "type": "string" - }, "description": { "type": "string" }, @@ -27,6 +26,9 @@ "enum": [ "http" ] + }, + "scheme": { + "type": "string" } }, "patternProperties": { @@ -34,7 +36,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc2/NonBearerHTTPSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc2/Reference.json b/definitions/2.0.0-rc2/Reference.json index 3dec6738..c0467010 100644 --- a/definitions/2.0.0-rc2/Reference.json +++ b/definitions/2.0.0-rc2/Reference.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc2/Reference.json", "type": "object", "required": [ "$ref" @@ -7,7 +9,5 @@ "$ref": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/ReferenceObject.json" } - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc2/Reference.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.0.0-rc2/ReferenceObject.json b/definitions/2.0.0-rc2/ReferenceObject.json index 58537f85..21dec64a 100644 --- a/definitions/2.0.0-rc2/ReferenceObject.json +++ b/definitions/2.0.0-rc2/ReferenceObject.json @@ -1,6 +1,6 @@ { - "type": "string", - "format": "uri-reference", "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc2/ReferenceObject.json" -} \ No newline at end of file + "$id": "http://asyncapi.com/definitions/2.0.0-rc2/ReferenceObject.json", + "type": "string", + "format": "uri-reference" +} diff --git a/definitions/2.0.0-rc2/SecurityRequirement.json b/definitions/2.0.0-rc2/SecurityRequirement.json index f016ab77..07359ee3 100644 --- a/definitions/2.0.0-rc2/SecurityRequirement.json +++ b/definitions/2.0.0-rc2/SecurityRequirement.json @@ -1,12 +1,12 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc2/SecurityRequirement.json", "type": "object", "additionalProperties": { "type": "array", + "uniqueItems": true, "items": { "type": "string" - }, - "uniqueItems": true - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc2/SecurityRequirement.json" -} \ No newline at end of file + } + } +} diff --git a/definitions/2.0.0-rc2/SecurityScheme.json b/definitions/2.0.0-rc2/SecurityScheme.json index 3681c7f7..8e3b0eb8 100644 --- a/definitions/2.0.0-rc2/SecurityScheme.json +++ b/definitions/2.0.0-rc2/SecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc2/SecurityScheme.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/userPassword.json" @@ -24,7 +26,5 @@ { "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/openIdConnect.json" } - ], - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc2/SecurityScheme.json" -} \ No newline at end of file + ] +} diff --git a/definitions/2.0.0-rc2/X509.json b/definitions/2.0.0-rc2/X509.json index a0e54416..2f1d9ef0 100644 --- a/definitions/2.0.0-rc2/X509.json +++ b/definitions/2.0.0-rc2/X509.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc2/X509.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "X509" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,7 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc2/X509.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc2/apiKey.json b/definitions/2.0.0-rc2/apiKey.json index a9bd3778..e353c940 100644 --- a/definitions/2.0.0-rc2/apiKey.json +++ b/definitions/2.0.0-rc2/apiKey.json @@ -1,10 +1,15 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc2/apiKey.json", "type": "object", "required": [ "type", "in" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ @@ -17,9 +22,6 @@ "user", "password" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -27,7 +29,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc2/apiKey.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc2/asymmetricEncryption.json b/definitions/2.0.0-rc2/asymmetricEncryption.json index 54f4ca27..6172ca45 100644 --- a/definitions/2.0.0-rc2/asymmetricEncryption.json +++ b/definitions/2.0.0-rc2/asymmetricEncryption.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc2/asymmetricEncryption.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "asymmetricEncryption" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,7 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc2/asymmetricEncryption.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc2/asyncapi.json b/definitions/2.0.0-rc2/asyncapi.json index d228bfe3..65056824 100644 --- a/definitions/2.0.0-rc2/asyncapi.json +++ b/definitions/2.0.0-rc2/asyncapi.json @@ -1,31 +1,37 @@ { - "title": "AsyncAPI 2.0.0-rc2 schema.", "$schema": "http://json-schema.org/draft-07/schema#", "$id": "http://asyncapi.com/definitions/2.0.0-rc2/asyncapi.json", + "title": "AsyncAPI 2.0.0-rc2 schema.", "type": "object", "required": [ "asyncapi", "info", "channels" ], - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/specificationExtension.json" - } - }, "properties": { + "id": { + "description": "A unique id representing the application.", + "type": "string", + "format": "uri" + }, "asyncapi": { + "description": "The AsyncAPI specification version of this document.", "type": "string", "enum": [ "2.0.0-rc2" - ], - "description": "The AsyncAPI specification version of this document." + ] }, - "id": { - "type": "string", - "description": "A unique id representing the application.", - "format": "uri" + "channels": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/channels.json" + }, + "components": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/components.json" + }, + "defaultContentType": { + "type": "string" + }, + "externalDocs": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/externalDocs.json" }, "info": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/info.json" @@ -36,24 +42,18 @@ "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/server.json" } }, - "defaultContentType": { - "type": "string" - }, - "channels": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/channels.json" - }, - "components": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/components.json" - }, "tags": { "type": "array", + "uniqueItems": true, "items": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/tag.json" - }, - "uniqueItems": true - }, - "externalDocs": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/externalDocs.json" + } } - } -} \ No newline at end of file + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc2/bindingsObject.json b/definitions/2.0.0-rc2/bindingsObject.json index 57ed4e7e..00092914 100644 --- a/definitions/2.0.0-rc2/bindingsObject.json +++ b/definitions/2.0.0-rc2/bindingsObject.json @@ -1,21 +1,21 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc2/bindingsObject.json", "type": "object", - "additionalProperties": true, "properties": { - "http": {}, - "ws": {}, "amqp": {}, "amqp1": {}, + "http": {}, + "jms": {}, + "kafka": {}, "mqtt": {}, "mqtt5": {}, - "kafka": {}, "nats": {}, - "jms": {}, + "redis": {}, "sns": {}, "sqs": {}, "stomp": {}, - "redis": {} + "ws": {} }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc2/bindingsObject.json" -} \ No newline at end of file + "additionalProperties": true +} diff --git a/definitions/2.0.0-rc2/channelItem.json b/definitions/2.0.0-rc2/channelItem.json index 307caab5..e7f48718 100644 --- a/definitions/2.0.0-rc2/channelItem.json +++ b/definitions/2.0.0-rc2/channelItem.json @@ -1,37 +1,37 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc2/channelItem.json", "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/specificationExtension.json" - } - }, "minProperties": 1, "properties": { + "description": { + "description": "A description of the channel.", + "type": "string" + }, + "deprecated": { + "default": false, + "type": "boolean" + }, "$ref": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/ReferenceObject.json" }, + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/bindingsObject.json" + }, "parameters": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/parameters.json" }, - "description": { - "type": "string", - "description": "A description of the channel." - }, "publish": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/operation.json" }, "subscribe": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/operation.json" - }, - "deprecated": { - "type": "boolean", - "default": false - }, - "bindings": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/bindingsObject.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc2/channelItem.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc2/channels.json b/definitions/2.0.0-rc2/channels.json index 71287a4a..f3e0faae 100644 --- a/definitions/2.0.0-rc2/channels.json +++ b/definitions/2.0.0-rc2/channels.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc2/channels.json", "type": "object", "propertyNames": { "type": "string", @@ -7,7 +9,5 @@ }, "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/channelItem.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc2/channels.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.0.0-rc2/components.json b/definitions/2.0.0-rc2/components.json index ce124407..3b7d41ca 100644 --- a/definitions/2.0.0-rc2/components.json +++ b/definitions/2.0.0-rc2/components.json @@ -1,32 +1,15 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc2/components.json", "description": "An object to hold a set of reusable objects for different aspects of the AsyncAPI Specification.", - "additionalProperties": false, + "type": "object", "properties": { - "schemas": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/schemas.json" - }, - "messages": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/messages.json" - }, - "securitySchemes": { + "channelBindings": { "type": "object", - "patternProperties": { - "^[\\w\\d\\.\\-_]+$": { - "oneOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/Reference.json" - }, - { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/SecurityScheme.json" - } - ] - } + "additionalProperties": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/bindingsObject.json" } }, - "parameters": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/parameters.json" - }, "correlationIds": { "type": "object", "patternProperties": { @@ -42,10 +25,10 @@ } } }, - "operationTraits": { + "messageBindings": { "type": "object", "additionalProperties": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/operationTrait.json" + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/bindingsObject.json" } }, "messageTraits": { @@ -54,31 +37,48 @@ "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/messageTrait.json" } }, - "serverBindings": { + "messages": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/messages.json" + }, + "operationBindings": { "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/bindingsObject.json" } }, - "channelBindings": { + "operationTraits": { "type": "object", "additionalProperties": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/bindingsObject.json" + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/operationTrait.json" } }, - "operationBindings": { + "parameters": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/parameters.json" + }, + "schemas": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/schemas.json" + }, + "securitySchemes": { "type": "object", - "additionalProperties": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/bindingsObject.json" + "patternProperties": { + "^[\\w\\d\\.\\-_]+$": { + "oneOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/Reference.json" + }, + { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/SecurityScheme.json" + } + ] + } } }, - "messageBindings": { + "serverBindings": { "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/bindingsObject.json" } } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc2/components.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc2/contact.json b/definitions/2.0.0-rc2/contact.json index a9f64d10..2d57f6e1 100644 --- a/definitions/2.0.0-rc2/contact.json +++ b/definitions/2.0.0-rc2/contact.json @@ -1,21 +1,22 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc2/contact.json", "description": "Contact information for the owners of the API.", - "additionalProperties": false, + "type": "object", "properties": { - "name": { + "email": { + "description": "The email address of the contact person/organization.", "type": "string", - "description": "The identifying name of the contact person/organization." + "format": "email" + }, + "name": { + "description": "The identifying name of the contact person/organization.", + "type": "string" }, "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" + "format": "uri" } }, "patternProperties": { @@ -23,6 +24,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/specificationExtension.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc2/contact.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc2/correlationId.json b/definitions/2.0.0-rc2/correlationId.json index 357c33a3..5f830346 100644 --- a/definitions/2.0.0-rc2/correlationId.json +++ b/definitions/2.0.0-rc2/correlationId.json @@ -1,25 +1,25 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc2/correlationId.json", "type": "object", "required": [ "location" ], - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/specificationExtension.json" - } - }, "properties": { "description": { - "type": "string", - "description": "A optional description of the correlation ID. GitHub Flavored Markdown is allowed." + "description": "A optional description of the correlation ID. GitHub Flavored Markdown is allowed.", + "type": "string" }, "location": { - "type": "string", "description": "A runtime expression that specifies the location of the correlation ID", + "type": "string", "pattern": "^\\$message\\.(header|payload)#(\\/(([^\\/~])|(~[01]))*)*" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc2/correlationId.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc2/externalDocs.json b/definitions/2.0.0-rc2/externalDocs.json index 26f913df..587947c6 100644 --- a/definitions/2.0.0-rc2/externalDocs.json +++ b/definitions/2.0.0-rc2/externalDocs.json @@ -1,7 +1,8 @@ { - "type": "object", - "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc2/externalDocs.json", "description": "information about external documentation", + "type": "object", "required": [ "url" ], @@ -19,6 +20,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/specificationExtension.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc2/externalDocs.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc2/info.json b/definitions/2.0.0-rc2/info.json index 138066b5..4ea16d2c 100644 --- a/definitions/2.0.0-rc2/info.json +++ b/definitions/2.0.0-rc2/info.json @@ -1,41 +1,41 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc2/info.json", "description": "General information about the API.", + "type": "object", "required": [ "version", "title" ], - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/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": "A unique and precise title of the API.", + "type": "string" }, "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" + "description": "A longer description of the API. Should be different from the title. CommonMark is allowed.", + "type": "string" }, "contact": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/contact.json" }, "license": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/license.json" + }, + "termsOfService": { + "description": "A URL to the Terms of Service for the API. MUST be in the format of a URL.", + "type": "string", + "format": "uri" + }, + "version": { + "description": "A semantic version number of the API.", + "type": "string" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc2/info.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc2/license.json b/definitions/2.0.0-rc2/license.json index 55eef656..ad2b8cf6 100644 --- a/definitions/2.0.0-rc2/license.json +++ b/definitions/2.0.0-rc2/license.json @@ -1,17 +1,18 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc2/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." + "description": "The name of the license type. It's encouraged to use an OSI compatible license.", + "type": "string" }, "url": { - "type": "string", "description": "The URL pointing to the license.", + "type": "string", "format": "uri" } }, @@ -20,6 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/specificationExtension.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc2/license.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc2/message.json b/definitions/2.0.0-rc2/message.json index d0cf30f3..95f95f57 100644 --- a/definitions/2.0.0-rc2/message.json +++ b/definitions/2.0.0-rc2/message.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc2/message.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/Reference.json" @@ -10,7 +12,6 @@ "required": [ "oneOf" ], - "additionalProperties": false, "properties": { "oneOf": { "type": "array", @@ -18,27 +19,36 @@ "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/message.json" } } - } + }, + "additionalProperties": false }, { "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/specificationExtension.json" - } - }, "properties": { - "schemaFormat": { + "title": { + "description": "A human-friendly title for the message.", "type": "string" }, - "contentType": { + "description": { + "description": "A longer description of the message. CommonMark is allowed.", "type": "string" }, - "headers": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/schema.json" + "examples": { + "type": "array", + "items": { + "type": "object" + } + }, + "deprecated": { + "default": false, + "type": "boolean" + }, + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/bindingsObject.json" + }, + "contentType": { + "type": "string" }, - "payload": {}, "correlationId": { "oneOf": [ { @@ -49,45 +59,31 @@ } ] }, - "tags": { - "type": "array", - "items": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/tag.json" - }, - "uniqueItems": true + "externalDocs": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/externalDocs.json" }, - "summary": { - "type": "string", - "description": "A brief summary of the message." + "headers": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/schema.json" }, "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." + "description": "Name of the message.", + "type": "string" }, - "externalDocs": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/externalDocs.json" + "payload": {}, + "schemaFormat": { + "type": "string" }, - "deprecated": { - "type": "boolean", - "default": false + "summary": { + "description": "A brief summary of the message.", + "type": "string" }, - "examples": { + "tags": { "type": "array", + "uniqueItems": true, "items": { - "type": "object" + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/tag.json" } }, - "bindings": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/bindingsObject.json" - }, "traits": { "type": "array", "items": { @@ -101,11 +97,15 @@ ] } } - } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/specificationExtension.json" + } + }, + "additionalProperties": false } ] } - ], - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc2/message.json" -} \ No newline at end of file + ] +} diff --git a/definitions/2.0.0-rc2/messageTrait.json b/definitions/2.0.0-rc2/messageTrait.json index 5a77ac1d..4a3d43a1 100644 --- a/definitions/2.0.0-rc2/messageTrait.json +++ b/definitions/2.0.0-rc2/messageTrait.json @@ -1,78 +1,78 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc2/messageTrait.json", "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/specificationExtension.json" - } - }, "properties": { - "schemaFormat": { + "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": { + "type": "array", + "items": { + "type": "object" + } + }, + "deprecated": { + "default": false, + "type": "boolean" + }, + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/bindingsObject.json" + }, "contentType": { "type": "string" }, - "headers": { + "correlationId": { "oneOf": [ { "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/Reference.json" }, { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/schema.json" + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/correlationId.json" } ] }, - "correlationId": { + "externalDocs": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/externalDocs.json" + }, + "headers": { "oneOf": [ { "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/Reference.json" }, { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/correlationId.json" + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/schema.json" } ] }, - "tags": { - "type": "array", - "items": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/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." + "description": "Name of the message.", + "type": "string" }, - "externalDocs": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/externalDocs.json" + "schemaFormat": { + "type": "string" }, - "deprecated": { - "type": "boolean", - "default": false + "summary": { + "description": "A brief summary of the message.", + "type": "string" }, - "examples": { + "tags": { "type": "array", + "uniqueItems": true, "items": { - "type": "object" + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/tag.json" } - }, - "bindings": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/bindingsObject.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc2/messageTrait.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc2/messages.json b/definitions/2.0.0-rc2/messages.json index 5d842a27..4f26ea51 100644 --- a/definitions/2.0.0-rc2/messages.json +++ b/definitions/2.0.0-rc2/messages.json @@ -1,9 +1,9 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc2/messages.json", + "description": "JSON objects describing the messages being consumed and produced by the API.", "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/message.json" - }, - "description": "JSON objects describing the messages being consumed and produced by the API.", - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc2/messages.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.0.0-rc2/oauth2Flow.json b/definitions/2.0.0-rc2/oauth2Flow.json index 24d4880e..518b1aee 100644 --- a/definitions/2.0.0-rc2/oauth2Flow.json +++ b/definitions/2.0.0-rc2/oauth2Flow.json @@ -1,20 +1,22 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc2/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.0.0-rc2/oauth2Scopes.json" + }, + "tokenUrl": { + "type": "string", + "format": "uri" } }, "patternProperties": { @@ -22,7 +24,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc2/oauth2Flow.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc2/oauth2Flows.json b/definitions/2.0.0-rc2/oauth2Flows.json index 0d6843c9..8342b710 100644 --- a/definitions/2.0.0-rc2/oauth2Flows.json +++ b/definitions/2.0.0-rc2/oauth2Flows.json @@ -1,23 +1,26 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc2/oauth2Flows.json", "type": "object", "required": [ "type", "flows" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "oauth2" ] }, - "description": { - "type": "string" - }, "flows": { "type": "object", + "minProperties": 1, "properties": { - "implicit": { + "authorizationCode": { "allOf": [ { "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/oauth2Flow.json" @@ -25,19 +28,13 @@ { "required": [ "authorizationUrl", + "tokenUrl", "scopes" ] - }, - { - "not": { - "required": [ - "tokenUrl" - ] - } } ] }, - "password": { + "clientCredentials": { "allOf": [ { "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/oauth2Flow.json" @@ -57,50 +54,53 @@ } ] }, - "clientCredentials": { + "implicit": { "allOf": [ { "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/oauth2Flow.json" }, { "required": [ - "tokenUrl", + "authorizationUrl", "scopes" ] }, { "not": { "required": [ - "authorizationUrl" + "tokenUrl" ] } } ] }, - "authorizationCode": { + "password": { "allOf": [ { "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/oauth2Flow.json" }, { "required": [ - "authorizationUrl", "tokenUrl", "scopes" ] + }, + { + "not": { + "required": [ + "authorizationUrl" + ] + } } ] } }, - "additionalProperties": false, - "minProperties": 1 + "additionalProperties": false } }, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/specificationExtension.json" } - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc2/oauth2Flows.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.0.0-rc2/oauth2Scopes.json b/definitions/2.0.0-rc2/oauth2Scopes.json index 82edfa86..9fe0f452 100644 --- a/definitions/2.0.0-rc2/oauth2Scopes.json +++ b/definitions/2.0.0-rc2/oauth2Scopes.json @@ -1,8 +1,8 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc2/oauth2Scopes.json", "type": "object", "additionalProperties": { "type": "string" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc2/oauth2Scopes.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.0.0-rc2/openIdConnect.json b/definitions/2.0.0-rc2/openIdConnect.json index ebafafd6..d2aa8586 100644 --- a/definitions/2.0.0-rc2/openIdConnect.json +++ b/definitions/2.0.0-rc2/openIdConnect.json @@ -1,19 +1,21 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc2/openIdConnect.json", "type": "object", "required": [ "type", "openIdConnectUrl" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "openIdConnect" ] }, - "description": { - "type": "string" - }, "openIdConnectUrl": { "type": "string", "format": "uri" @@ -24,7 +26,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc2/openIdConnect.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc2/operation.json b/definitions/2.0.0-rc2/operation.json index 825da2d3..594ed14e 100644 --- a/definitions/2.0.0-rc2/operation.json +++ b/definitions/2.0.0-rc2/operation.json @@ -1,12 +1,33 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc2/operation.json", "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/specificationExtension.json" - } - }, "properties": { + "description": { + "type": "string" + }, + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/bindingsObject.json" + }, + "externalDocs": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/externalDocs.json" + }, + "message": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/message.json" + }, + "operationId": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "tags": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/tag.json" + } + }, "traits": { "type": "array", "items": { @@ -19,33 +40,12 @@ } ] } - }, - "summary": { - "type": "string" - }, - "description": { - "type": "string" - }, - "tags": { - "type": "array", - "items": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/tag.json" - }, - "uniqueItems": true - }, - "externalDocs": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/externalDocs.json" - }, - "operationId": { - "type": "string" - }, - "bindings": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/bindingsObject.json" - }, - "message": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/message.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc2/operation.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc2/operationTrait.json b/definitions/2.0.0-rc2/operationTrait.json index 50079695..d44a6845 100644 --- a/definitions/2.0.0-rc2/operationTrait.json +++ b/definitions/2.0.0-rc2/operationTrait.json @@ -1,24 +1,13 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc2/operationTrait.json", "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/specificationExtension.json" - } - }, "properties": { - "summary": { - "type": "string" - }, "description": { "type": "string" }, - "tags": { - "type": "array", - "items": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/tag.json" - }, - "uniqueItems": true + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/bindingsObject.json" }, "externalDocs": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/externalDocs.json" @@ -26,10 +15,21 @@ "operationId": { "type": "string" }, - "bindings": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/bindingsObject.json" + "summary": { + "type": "string" + }, + "tags": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/tag.json" + } } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc2/operationTrait.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc2/parameter.json b/definitions/2.0.0-rc2/parameter.json index 13827c99..8c9ae6e2 100644 --- a/definitions/2.0.0-rc2/parameter.json +++ b/definitions/2.0.0-rc2/parameter.json @@ -1,27 +1,27 @@ { - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/specificationExtension.json" - } - }, + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc2/parameter.json", "properties": { "description": { - "type": "string", - "description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed." + "description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed.", + "type": "string" }, - "schema": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/schema.json" + "$ref": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/ReferenceObject.json" }, "location": { - "type": "string", "description": "A runtime expression that specifies the location of the parameter value", + "type": "string", "pattern": "^\\$message\\.(header|payload)#(\\/(([^\\/~])|(~[01]))*)*" }, - "$ref": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/ReferenceObject.json" + "schema": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/schema.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc2/parameter.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc2/parameters.json b/definitions/2.0.0-rc2/parameters.json index 17076e15..c8bd5f4a 100644 --- a/definitions/2.0.0-rc2/parameters.json +++ b/definitions/2.0.0-rc2/parameters.json @@ -1,4 +1,7 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc2/parameters.json", + "description": "JSON objects describing re-usable channel parameters.", "type": "object", "additionalProperties": { "oneOf": [ @@ -9,8 +12,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/parameter.json" } ] - }, - "description": "JSON objects describing re-usable channel parameters.", - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc2/parameters.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.0.0-rc2/schema.json b/definitions/2.0.0-rc2/schema.json index 9de8a2cf..25f8a779 100644 --- a/definitions/2.0.0-rc2/schema.json +++ b/definitions/2.0.0-rc2/schema.json @@ -1,33 +1,16 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc2/schema.json", "allOf": [ { "$ref": "http://json-schema.org/draft-07/schema#" }, { "type": "object", - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/specificationExtension.json" - } - }, "properties": { - "additionalProperties": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/schema.json" - }, - "items": { - "anyOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/schema.json" - }, - { - "type": "array", - "minItems": 1, - "items": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/schema.json" - } - } - ], - "default": {} + "deprecated": { + "default": false, + "type": "boolean" }, "allOf": { "type": "array", @@ -36,14 +19,14 @@ "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/schema.json" } }, - "oneOf": { + "anyOf": { "type": "array", "minItems": 2, "items": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/schema.json" } }, - "anyOf": { + "oneOf": { "type": "array", "minItems": 2, "items": { @@ -53,24 +36,42 @@ "not": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/schema.json" }, + "contains": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/schema.json" + }, + "items": { + "default": {}, + "anyOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/schema.json" + }, + { + "type": "array", + "minItems": 1, + "items": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/schema.json" + } + } + ] + }, + "propertyNames": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/schema.json" + }, "properties": { + "default": {}, "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/schema.json" - }, - "default": {} + } }, "patternProperties": { + "default": {}, "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/schema.json" - }, - "default": {} - }, - "propertyNames": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/schema.json" + } }, - "contains": { + "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/schema.json" }, "discriminator": { @@ -78,14 +79,13 @@ }, "externalDocs": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/externalDocs.json" - }, - "deprecated": { - "type": "boolean", - "default": false + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/specificationExtension.json" } } } - ], - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc2/schema.json" -} \ No newline at end of file + ] +} diff --git a/definitions/2.0.0-rc2/schemas.json b/definitions/2.0.0-rc2/schemas.json index ffacd8a0..ec9a4f32 100644 --- a/definitions/2.0.0-rc2/schemas.json +++ b/definitions/2.0.0-rc2/schemas.json @@ -1,9 +1,9 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc2/schemas.json", + "description": "JSON objects describing schemas the API uses.", "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/schema.json" - }, - "description": "JSON objects describing schemas the API uses.", - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc2/schemas.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.0.0-rc2/server.json b/definitions/2.0.0-rc2/server.json index e16498b4..e385fb9e 100644 --- a/definitions/2.0.0-rc2/server.json +++ b/definitions/2.0.0-rc2/server.json @@ -1,43 +1,43 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc2/server.json", "description": "An object representing a Server.", + "type": "object", "required": [ "url", "protocol" ], - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/specificationExtension.json" - } - }, "properties": { - "url": { - "type": "string" - }, "description": { "type": "string" }, + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/bindingsObject.json" + }, "protocol": { - "type": "string", - "description": "The transfer protocol." + "description": "The transfer protocol.", + "type": "string" }, "protocolVersion": { "type": "string" }, - "variables": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/serverVariables.json" - }, "security": { "type": "array", "items": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/SecurityRequirement.json" } }, - "bindings": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/bindingsObject.json" + "url": { + "type": "string" + }, + "variables": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/serverVariables.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc2/server.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc2/serverVariable.json b/definitions/2.0.0-rc2/serverVariable.json index 4dce643d..1ddf6d23 100644 --- a/definitions/2.0.0-rc2/serverVariable.json +++ b/definitions/2.0.0-rc2/serverVariable.json @@ -1,34 +1,34 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc2/serverVariable.json", "description": "An object representing a Server Variable for server URL template substitution.", + "type": "object", "minProperties": 1, - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/specificationExtension.json" - } - }, "properties": { - "enum": { + "description": { + "type": "string" + }, + "examples": { "type": "array", "items": { "type": "string" - }, - "uniqueItems": true + } }, "default": { "type": "string" }, - "description": { - "type": "string" - }, - "examples": { + "enum": { "type": "array", + "uniqueItems": true, "items": { "type": "string" } } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc2/serverVariable.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc2/serverVariables.json b/definitions/2.0.0-rc2/serverVariables.json index dfbe5c8f..5c464182 100644 --- a/definitions/2.0.0-rc2/serverVariables.json +++ b/definitions/2.0.0-rc2/serverVariables.json @@ -1,8 +1,8 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc2/serverVariables.json", "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/serverVariable.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc2/serverVariables.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.0.0-rc2/specificationExtension.json b/definitions/2.0.0-rc2/specificationExtension.json index e7ebc1e9..2e8dfb71 100644 --- a/definitions/2.0.0-rc2/specificationExtension.json +++ b/definitions/2.0.0-rc2/specificationExtension.json @@ -1,7 +1,7 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc2/specificationExtension.json", "description": "Any property starting with x- is valid.", - "additionalProperties": true, "additionalItems": true, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc2/specificationExtension.json" -} \ No newline at end of file + "additionalProperties": true +} diff --git a/definitions/2.0.0-rc2/symmetricEncryption.json b/definitions/2.0.0-rc2/symmetricEncryption.json index 6e965e5c..db41de4b 100644 --- a/definitions/2.0.0-rc2/symmetricEncryption.json +++ b/definitions/2.0.0-rc2/symmetricEncryption.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc2/symmetricEncryption.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "symmetricEncryption" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,7 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc2/symmetricEncryption.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc2/tag.json b/definitions/2.0.0-rc2/tag.json index 3ad3bd8c..67adeaed 100644 --- a/definitions/2.0.0-rc2/tag.json +++ b/definitions/2.0.0-rc2/tag.json @@ -1,18 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc2/tag.json", "type": "object", - "additionalProperties": false, "required": [ "name" ], "properties": { - "name": { - "type": "string" - }, "description": { "type": "string" }, "externalDocs": { "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/externalDocs.json" + }, + "name": { + "type": "string" } }, "patternProperties": { @@ -20,6 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/specificationExtension.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc2/tag.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0-rc2/userPassword.json b/definitions/2.0.0-rc2/userPassword.json index 46dfa2e6..57aa9429 100644 --- a/definitions/2.0.0-rc2/userPassword.json +++ b/definitions/2.0.0-rc2/userPassword.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0-rc2/userPassword.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "userPassword" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,7 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0-rc2/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0-rc2/userPassword.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0/APIKeyHTTPSecurityScheme.json b/definitions/2.0.0/APIKeyHTTPSecurityScheme.json index 7628cbd2..a102c02a 100644 --- a/definitions/2.0.0/APIKeyHTTPSecurityScheme.json +++ b/definitions/2.0.0/APIKeyHTTPSecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0/APIKeyHTTPSecurityScheme.json", "type": "object", "required": [ "type", @@ -6,15 +8,15 @@ "in" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "httpApiKey" ] }, - "name": { - "type": "string" - }, "in": { "type": "string", "enum": [ @@ -23,7 +25,7 @@ "cookie" ] }, - "description": { + "name": { "type": "string" } }, @@ -32,7 +34,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0/APIKeyHTTPSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0/BearerHTTPSecurityScheme.json b/definitions/2.0.0/BearerHTTPSecurityScheme.json index 33bfe7f1..0c4fc516 100644 --- a/definitions/2.0.0/BearerHTTPSecurityScheme.json +++ b/definitions/2.0.0/BearerHTTPSecurityScheme.json @@ -1,27 +1,29 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0/BearerHTTPSecurityScheme.json", "type": "object", "required": [ "type", "scheme" ], "properties": { - "scheme": { + "description": { + "type": "string" + }, + "type": { "type": "string", "enum": [ - "bearer" + "http" ] }, "bearerFormat": { "type": "string" }, - "type": { + "scheme": { "type": "string", "enum": [ - "http" + "bearer" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -29,7 +31,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0/BearerHTTPSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0/HTTPSecurityScheme.json b/definitions/2.0.0/HTTPSecurityScheme.json index 511aee53..721cd005 100644 --- a/definitions/2.0.0/HTTPSecurityScheme.json +++ b/definitions/2.0.0/HTTPSecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0/HTTPSecurityScheme.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/2.0.0/NonBearerHTTPSecurityScheme.json" @@ -9,7 +11,5 @@ { "$ref": "http://asyncapi.com/definitions/2.0.0/APIKeyHTTPSecurityScheme.json" } - ], - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0/HTTPSecurityScheme.json" -} \ No newline at end of file + ] +} diff --git a/definitions/2.0.0/NonBearerHTTPSecurityScheme.json b/definitions/2.0.0/NonBearerHTTPSecurityScheme.json index 66210b38..9f7eee27 100644 --- a/definitions/2.0.0/NonBearerHTTPSecurityScheme.json +++ b/definitions/2.0.0/NonBearerHTTPSecurityScheme.json @@ -1,4 +1,7 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0/NonBearerHTTPSecurityScheme.json", + "type": "object", "not": { "type": "object", "properties": { @@ -10,15 +13,11 @@ } } }, - "type": "object", "required": [ "scheme", "type" ], "properties": { - "scheme": { - "type": "string" - }, "description": { "type": "string" }, @@ -27,6 +26,9 @@ "enum": [ "http" ] + }, + "scheme": { + "type": "string" } }, "patternProperties": { @@ -34,7 +36,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0/NonBearerHTTPSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0/Reference.json b/definitions/2.0.0/Reference.json index 7fd1f124..2a29fded 100644 --- a/definitions/2.0.0/Reference.json +++ b/definitions/2.0.0/Reference.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0/Reference.json", "type": "object", "required": [ "$ref" @@ -7,7 +9,5 @@ "$ref": { "$ref": "http://asyncapi.com/definitions/2.0.0/ReferenceObject.json" } - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0/Reference.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.0.0/ReferenceObject.json b/definitions/2.0.0/ReferenceObject.json index 7fcccba1..db6757b6 100644 --- a/definitions/2.0.0/ReferenceObject.json +++ b/definitions/2.0.0/ReferenceObject.json @@ -1,6 +1,6 @@ { - "type": "string", - "format": "uri-reference", "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0/ReferenceObject.json" -} \ No newline at end of file + "$id": "http://asyncapi.com/definitions/2.0.0/ReferenceObject.json", + "type": "string", + "format": "uri-reference" +} diff --git a/definitions/2.0.0/SecurityRequirement.json b/definitions/2.0.0/SecurityRequirement.json index 432f0c1d..e8616b6f 100644 --- a/definitions/2.0.0/SecurityRequirement.json +++ b/definitions/2.0.0/SecurityRequirement.json @@ -1,12 +1,12 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0/SecurityRequirement.json", "type": "object", "additionalProperties": { "type": "array", + "uniqueItems": true, "items": { "type": "string" - }, - "uniqueItems": true - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0/SecurityRequirement.json" -} \ No newline at end of file + } + } +} diff --git a/definitions/2.0.0/SecurityScheme.json b/definitions/2.0.0/SecurityScheme.json index e6e0fbe1..af399659 100644 --- a/definitions/2.0.0/SecurityScheme.json +++ b/definitions/2.0.0/SecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0/SecurityScheme.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/2.0.0/userPassword.json" @@ -24,7 +26,5 @@ { "$ref": "http://asyncapi.com/definitions/2.0.0/openIdConnect.json" } - ], - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0/SecurityScheme.json" -} \ No newline at end of file + ] +} diff --git a/definitions/2.0.0/X509.json b/definitions/2.0.0/X509.json index a5deac7b..5b4772d0 100644 --- a/definitions/2.0.0/X509.json +++ b/definitions/2.0.0/X509.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0/X509.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "X509" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,7 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0/X509.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0/apiKey.json b/definitions/2.0.0/apiKey.json index 63431452..50fba93c 100644 --- a/definitions/2.0.0/apiKey.json +++ b/definitions/2.0.0/apiKey.json @@ -1,10 +1,15 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0/apiKey.json", "type": "object", "required": [ "type", "in" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ @@ -17,9 +22,6 @@ "user", "password" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -27,7 +29,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0/apiKey.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0/asymmetricEncryption.json b/definitions/2.0.0/asymmetricEncryption.json index e43bd148..c89a40f2 100644 --- a/definitions/2.0.0/asymmetricEncryption.json +++ b/definitions/2.0.0/asymmetricEncryption.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0/asymmetricEncryption.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "asymmetricEncryption" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,7 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0/asymmetricEncryption.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0/asyncapi.json b/definitions/2.0.0/asyncapi.json index 3776b839..d9e99f82 100644 --- a/definitions/2.0.0/asyncapi.json +++ b/definitions/2.0.0/asyncapi.json @@ -1,31 +1,37 @@ { - "title": "AsyncAPI 2.0.0 schema.", "$schema": "http://json-schema.org/draft-07/schema#", "$id": "http://asyncapi.com/definitions/2.0.0/asyncapi.json", + "title": "AsyncAPI 2.0.0 schema.", "type": "object", "required": [ "asyncapi", "info", "channels" ], - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.0.0/specificationExtension.json" - } - }, "properties": { + "id": { + "description": "A unique id representing the application.", + "type": "string", + "format": "uri" + }, "asyncapi": { + "description": "The AsyncAPI specification version of this document.", "type": "string", "enum": [ "2.0.0" - ], - "description": "The AsyncAPI specification version of this document." + ] }, - "id": { - "type": "string", - "description": "A unique id representing the application.", - "format": "uri" + "channels": { + "$ref": "http://asyncapi.com/definitions/2.0.0/channels.json" + }, + "components": { + "$ref": "http://asyncapi.com/definitions/2.0.0/components.json" + }, + "defaultContentType": { + "type": "string" + }, + "externalDocs": { + "$ref": "http://asyncapi.com/definitions/2.0.0/externalDocs.json" }, "info": { "$ref": "http://asyncapi.com/definitions/2.0.0/info.json" @@ -36,24 +42,18 @@ "$ref": "http://asyncapi.com/definitions/2.0.0/server.json" } }, - "defaultContentType": { - "type": "string" - }, - "channels": { - "$ref": "http://asyncapi.com/definitions/2.0.0/channels.json" - }, - "components": { - "$ref": "http://asyncapi.com/definitions/2.0.0/components.json" - }, "tags": { "type": "array", + "uniqueItems": true, "items": { "$ref": "http://asyncapi.com/definitions/2.0.0/tag.json" - }, - "uniqueItems": true - }, - "externalDocs": { - "$ref": "http://asyncapi.com/definitions/2.0.0/externalDocs.json" + } } - } -} \ No newline at end of file + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.0.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.0.0/avroSchema_v1.json b/definitions/2.0.0/avroSchema_v1.json index 781e66e8..f9e6f6da 100644 --- a/definitions/2.0.0/avroSchema_v1.json +++ b/definitions/2.0.0/avroSchema_v1.json @@ -1,220 +1,131 @@ { "$schema": "http://json-schema.org/draft-07/schema#", "$id": "http://asyncapi.com/definitions/2.0.0/avroSchema_v1.json", + "title": "Avro Schema Definition", + "description": "Json-Schema definition for Avro AVSC files.", + "oneOf": [ + { + "$ref": "#/definitions/avroSchema" + } + ], "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.", + "avroArray": { + "title": "Array", + "description": "An array", "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", + "type", + "items" + ], "properties": { - "name": { - "$ref": "#/definitions/name" - }, "type": { - "$ref": "#/definitions/types" - }, - "doc": { - "type": "string" + "type": "string", + "const": "array" }, - "default": true, - "order": { - "enum": [ - "ascending", - "descending", - "ignore" - ] + "items": { + "$ref": "#/definitions/types" }, "aliases": { "type": "array", "items": { "$ref": "#/definitions/name" } - } - }, - "required": [ - "name", - "type" - ] - }, - "avroRecord": { - "title": "Record", - "description": "A Record", - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "record" + }, + "doc": { + "type": "string" }, "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", + "required": [ + "type", + "name", + "symbols" + ], "properties": { "type": { "type": "string", "const": "enum" }, + "aliases": { + "type": "array", + "items": { + "$ref": "#/definitions/name" + } + }, + "doc": { + "type": "string" + }, "name": { "$ref": "#/definitions/name" }, "namespace": { "$ref": "#/definitions/namespace" }, - "doc": { - "type": "string" - }, - "aliases": { + "symbols": { "type": "array", "items": { "$ref": "#/definitions/name" } + } + } + }, + "avroField": { + "title": "Field", + "description": "A field within a Record", + "type": "object", + "required": [ + "name", + "type" + ], + "properties": { + "default": true, + "type": { + "$ref": "#/definitions/types" }, - "symbols": { + "aliases": { "type": "array", "items": { "$ref": "#/definitions/name" } + }, + "doc": { + "type": "string" + }, + "name": { + "$ref": "#/definitions/name" + }, + "order": { + "enum": [ + "ascending", + "descending", + "ignore" + ] } - }, + } + }, + "avroFixed": { + "title": "Fixed", + "description": "A fixed sized array of bytes", + "type": "object", "required": [ "type", "name", - "symbols" - ] - }, - "avroArray": { - "title": "Array", - "description": "An array", - "type": "object", + "size" + ], "properties": { "type": { "type": "string", - "const": "array" - }, - "name": { - "$ref": "#/definitions/name" - }, - "namespace": { - "$ref": "#/definitions/namespace" - }, - "doc": { - "type": "string" + "const": "fixed" }, "aliases": { "type": "array", @@ -222,82 +133,117 @@ "$ref": "#/definitions/name" } }, - "items": { - "$ref": "#/definitions/types" + "doc": { + "type": "string" + }, + "name": { + "$ref": "#/definitions/name" + }, + "namespace": { + "$ref": "#/definitions/namespace" + }, + "size": { + "type": "number" } - }, - "required": [ - "type", - "items" - ] + } }, "avroMap": { "title": "Map", "description": "A map of values", "type": "object", + "required": [ + "type", + "values" + ], "properties": { "type": { "type": "string", "const": "map" }, - "name": { - "$ref": "#/definitions/name" - }, - "namespace": { - "$ref": "#/definitions/namespace" - }, - "doc": { - "type": "string" - }, "aliases": { "type": "array", "items": { "$ref": "#/definitions/name" } }, + "doc": { + "type": "string" + }, + "name": { + "$ref": "#/definitions/name" + }, + "namespace": { + "$ref": "#/definitions/namespace" + }, "values": { "$ref": "#/definitions/types" } - }, - "required": [ - "type", - "values" - ] + } }, - "avroFixed": { - "title": "Fixed", - "description": "A fixed sized array of bytes", + "avroRecord": { + "title": "Record", + "description": "A Record", "type": "object", + "required": [ + "type", + "name", + "fields" + ], "properties": { "type": { "type": "string", - "const": "fixed" - }, - "name": { - "$ref": "#/definitions/name" + "const": "record" }, - "namespace": { - "$ref": "#/definitions/namespace" + "aliases": { + "type": "array", + "items": { + "$ref": "#/definitions/name" + } }, "doc": { "type": "string" }, - "aliases": { + "fields": { "type": "array", "items": { - "$ref": "#/definitions/name" + "$ref": "#/definitions/avroField" } }, - "size": { - "type": "number" + "name": { + "$ref": "#/definitions/name" + }, + "namespace": { + "$ref": "#/definitions/namespace" + } + } + }, + "avroSchema": { + "title": "Avro Schema", + "description": "Root Schema", + "oneOf": [ + { + "$ref": "#/definitions/types" } - }, - "required": [ - "type", - "name", - "size" ] }, + "avroUnion": { + "title": "Union", + "description": "A Union of types", + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/definitions/avroSchema" + } + }, + "customTypeReference": { + "title": "Custom Type", + "description": "Reference to a ComplexType", + "type": "string", + "not": { + "$ref": "#/definitions/primitiveType" + }, + "pattern": "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$" + }, "name": { "type": "string", "pattern": "^[A-Za-z_][A-Za-z0-9_]*$" @@ -305,13 +251,67 @@ "namespace": { "type": "string", "pattern": "^([A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*)*$" + }, + "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", + "required": [ + "type" + ], + "properties": { + "type": { + "$ref": "#/definitions/primitiveType" + } + } + }, + "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" + } + ] } - }, - "description": "Json-Schema definition for Avro AVSC files.", - "oneOf": [ - { - "$ref": "#/definitions/avroSchema" - } - ], - "title": "Avro Schema Definition" -} \ No newline at end of file + } +} diff --git a/definitions/2.0.0/bindingsObject.json b/definitions/2.0.0/bindingsObject.json index 5c7a2475..9819fa12 100644 --- a/definitions/2.0.0/bindingsObject.json +++ b/definitions/2.0.0/bindingsObject.json @@ -1,21 +1,21 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0/bindingsObject.json", "type": "object", - "additionalProperties": true, "properties": { - "http": {}, - "ws": {}, "amqp": {}, "amqp1": {}, + "http": {}, + "jms": {}, + "kafka": {}, "mqtt": {}, "mqtt5": {}, - "kafka": {}, "nats": {}, - "jms": {}, + "redis": {}, "sns": {}, "sqs": {}, "stomp": {}, - "redis": {} + "ws": {} }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0/bindingsObject.json" -} \ No newline at end of file + "additionalProperties": true +} diff --git a/definitions/2.0.0/channelItem.json b/definitions/2.0.0/channelItem.json index 605223a8..83dde1f6 100644 --- a/definitions/2.0.0/channelItem.json +++ b/definitions/2.0.0/channelItem.json @@ -1,36 +1,36 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0/channelItem.json", "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.0.0/specificationExtension.json" - } - }, "properties": { + "description": { + "description": "A description of the channel.", + "type": "string" + }, + "deprecated": { + "default": false, + "type": "boolean" + }, "$ref": { "$ref": "http://asyncapi.com/definitions/2.0.0/ReferenceObject.json" }, + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.0.0/bindingsObject.json" + }, "parameters": { "$ref": "http://asyncapi.com/definitions/2.0.0/parameters.json" }, - "description": { - "type": "string", - "description": "A description of the channel." - }, "publish": { "$ref": "http://asyncapi.com/definitions/2.0.0/operation.json" }, "subscribe": { "$ref": "http://asyncapi.com/definitions/2.0.0/operation.json" - }, - "deprecated": { - "type": "boolean", - "default": false - }, - "bindings": { - "$ref": "http://asyncapi.com/definitions/2.0.0/bindingsObject.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0/channelItem.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.0.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.0.0/channels.json b/definitions/2.0.0/channels.json index dc7b33b8..c507b73b 100644 --- a/definitions/2.0.0/channels.json +++ b/definitions/2.0.0/channels.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0/channels.json", "type": "object", "propertyNames": { "type": "string", @@ -7,7 +9,5 @@ }, "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.0.0/channelItem.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0/channels.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.0.0/components.json b/definitions/2.0.0/components.json index 11d05165..6ee0fc4b 100644 --- a/definitions/2.0.0/components.json +++ b/definitions/2.0.0/components.json @@ -1,37 +1,15 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0/components.json", "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.0.0/specificationExtension.json" - } - }, + "type": "object", "properties": { - "schemas": { - "$ref": "http://asyncapi.com/definitions/2.0.0/schemas.json" - }, - "messages": { - "$ref": "http://asyncapi.com/definitions/2.0.0/messages.json" - }, - "securitySchemes": { + "channelBindings": { "type": "object", - "patternProperties": { - "^[\\w\\d\\.\\-_]+$": { - "oneOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.0.0/Reference.json" - }, - { - "$ref": "http://asyncapi.com/definitions/2.0.0/SecurityScheme.json" - } - ] - } + "additionalProperties": { + "$ref": "http://asyncapi.com/definitions/2.0.0/bindingsObject.json" } }, - "parameters": { - "$ref": "http://asyncapi.com/definitions/2.0.0/parameters.json" - }, "correlationIds": { "type": "object", "patternProperties": { @@ -47,10 +25,10 @@ } } }, - "operationTraits": { + "messageBindings": { "type": "object", "additionalProperties": { - "$ref": "http://asyncapi.com/definitions/2.0.0/operationTrait.json" + "$ref": "http://asyncapi.com/definitions/2.0.0/bindingsObject.json" } }, "messageTraits": { @@ -59,31 +37,53 @@ "$ref": "http://asyncapi.com/definitions/2.0.0/messageTrait.json" } }, - "serverBindings": { + "messages": { + "$ref": "http://asyncapi.com/definitions/2.0.0/messages.json" + }, + "operationBindings": { "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.0.0/bindingsObject.json" } }, - "channelBindings": { + "operationTraits": { "type": "object", "additionalProperties": { - "$ref": "http://asyncapi.com/definitions/2.0.0/bindingsObject.json" + "$ref": "http://asyncapi.com/definitions/2.0.0/operationTrait.json" } }, - "operationBindings": { + "parameters": { + "$ref": "http://asyncapi.com/definitions/2.0.0/parameters.json" + }, + "schemas": { + "$ref": "http://asyncapi.com/definitions/2.0.0/schemas.json" + }, + "securitySchemes": { "type": "object", - "additionalProperties": { - "$ref": "http://asyncapi.com/definitions/2.0.0/bindingsObject.json" + "patternProperties": { + "^[\\w\\d\\.\\-_]+$": { + "oneOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.0.0/Reference.json" + }, + { + "$ref": "http://asyncapi.com/definitions/2.0.0/SecurityScheme.json" + } + ] + } } }, - "messageBindings": { + "serverBindings": { "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.0.0/bindingsObject.json" } } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0/components.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.0.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.0.0/contact.json b/definitions/2.0.0/contact.json index 4d3fdcc4..3cb36b3e 100644 --- a/definitions/2.0.0/contact.json +++ b/definitions/2.0.0/contact.json @@ -1,21 +1,22 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0/contact.json", "description": "Contact information for the owners of the API.", - "additionalProperties": false, + "type": "object", "properties": { - "name": { + "email": { + "description": "The email address of the contact person/organization.", "type": "string", - "description": "The identifying name of the contact person/organization." + "format": "email" + }, + "name": { + "description": "The identifying name of the contact person/organization.", + "type": "string" }, "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" + "format": "uri" } }, "patternProperties": { @@ -23,6 +24,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0/specificationExtension.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0/contact.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0/correlationId.json b/definitions/2.0.0/correlationId.json index acd5df90..5d1aaddd 100644 --- a/definitions/2.0.0/correlationId.json +++ b/definitions/2.0.0/correlationId.json @@ -1,25 +1,25 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0/correlationId.json", "type": "object", "required": [ "location" ], - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.0.0/specificationExtension.json" - } - }, "properties": { "description": { - "type": "string", - "description": "A optional description of the correlation ID. GitHub Flavored Markdown is allowed." + "description": "A optional description of the correlation ID. GitHub Flavored Markdown is allowed.", + "type": "string" }, "location": { - "type": "string", "description": "A runtime expression that specifies the location of the correlation ID", + "type": "string", "pattern": "^\\$message\\.(header|payload)#(\\/(([^\\/~])|(~[01]))*)*" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0/correlationId.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.0.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.0.0/externalDocs.json b/definitions/2.0.0/externalDocs.json index 6896803b..478f6acb 100644 --- a/definitions/2.0.0/externalDocs.json +++ b/definitions/2.0.0/externalDocs.json @@ -1,7 +1,8 @@ { - "type": "object", - "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0/externalDocs.json", "description": "information about external documentation", + "type": "object", "required": [ "url" ], @@ -19,6 +20,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0/specificationExtension.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0/externalDocs.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0/info.json b/definitions/2.0.0/info.json index 1efd672d..b3674309 100644 --- a/definitions/2.0.0/info.json +++ b/definitions/2.0.0/info.json @@ -1,41 +1,41 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0/info.json", "description": "General information about the API.", + "type": "object", "required": [ "version", "title" ], - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.0.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": "A unique and precise title of the API.", + "type": "string" }, "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" + "description": "A longer description of the API. Should be different from the title. CommonMark is allowed.", + "type": "string" }, "contact": { "$ref": "http://asyncapi.com/definitions/2.0.0/contact.json" }, "license": { "$ref": "http://asyncapi.com/definitions/2.0.0/license.json" + }, + "termsOfService": { + "description": "A URL to the Terms of Service for the API. MUST be in the format of a URL.", + "type": "string", + "format": "uri" + }, + "version": { + "description": "A semantic version number of the API.", + "type": "string" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0/info.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.0.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.0.0/license.json b/definitions/2.0.0/license.json index 9df7d01c..49019b11 100644 --- a/definitions/2.0.0/license.json +++ b/definitions/2.0.0/license.json @@ -1,17 +1,18 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.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." + "description": "The name of the license type. It's encouraged to use an OSI compatible license.", + "type": "string" }, "url": { - "type": "string", "description": "The URL pointing to the license.", + "type": "string", "format": "uri" } }, @@ -20,6 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0/specificationExtension.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0/license.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0/message.json b/definitions/2.0.0/message.json index 141dcd93..8eb53683 100644 --- a/definitions/2.0.0/message.json +++ b/definitions/2.0.0/message.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0/message.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/2.0.0/Reference.json" @@ -10,7 +12,6 @@ "required": [ "oneOf" ], - "additionalProperties": false, "properties": { "oneOf": { "type": "array", @@ -18,108 +19,11 @@ "$ref": "http://asyncapi.com/definitions/2.0.0/message.json" } } - } + }, + "additionalProperties": false }, { "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.0.0/specificationExtension.json" - } - }, - "properties": { - "schemaFormat": { - "type": "string" - }, - "contentType": { - "type": "string" - }, - "headers": { - "allOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.0.0/schema.json" - }, - { - "properties": { - "type": { - "const": "object" - } - } - } - ] - }, - "payload": {}, - "correlationId": { - "oneOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.0.0/Reference.json" - }, - { - "$ref": "http://asyncapi.com/definitions/2.0.0/correlationId.json" - } - ] - }, - "tags": { - "type": "array", - "items": { - "$ref": "http://asyncapi.com/definitions/2.0.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.0.0/externalDocs.json" - }, - "deprecated": { - "type": "boolean", - "default": false - }, - "examples": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": false, - "properties": { - "headers": { - "type": "object" - }, - "payload": {} - } - } - }, - "bindings": { - "$ref": "http://asyncapi.com/definitions/2.0.0/bindingsObject.json" - }, - "traits": { - "type": "array", - "items": { - "oneOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.0.0/Reference.json" - }, - { - "$ref": "http://asyncapi.com/definitions/2.0.0/messageTrait.json" - } - ] - } - } - }, "allOf": [ { "if": { @@ -190,8 +94,8 @@ "properties": { "schemaFormat": { "enum": [ - "application/vnd.oai.openapi;version=3.0.0", - "application/vnd.oai.openapi+json;version=3.0.0", + "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" ] } @@ -228,11 +132,107 @@ } } } - ] + ], + "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": { + "type": "array", + "items": { + "type": "object", + "properties": { + "headers": { + "type": "object" + }, + "payload": {} + }, + "additionalProperties": false + } + }, + "deprecated": { + "default": false, + "type": "boolean" + }, + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.0.0/bindingsObject.json" + }, + "contentType": { + "type": "string" + }, + "correlationId": { + "oneOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.0.0/Reference.json" + }, + { + "$ref": "http://asyncapi.com/definitions/2.0.0/correlationId.json" + } + ] + }, + "externalDocs": { + "$ref": "http://asyncapi.com/definitions/2.0.0/externalDocs.json" + }, + "headers": { + "allOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.0.0/schema.json" + }, + { + "properties": { + "type": { + "const": "object" + } + } + } + ] + }, + "name": { + "description": "Name of the message.", + "type": "string" + }, + "payload": {}, + "schemaFormat": { + "type": "string" + }, + "summary": { + "description": "A brief summary of the message.", + "type": "string" + }, + "tags": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "http://asyncapi.com/definitions/2.0.0/tag.json" + } + }, + "traits": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.0.0/Reference.json" + }, + { + "$ref": "http://asyncapi.com/definitions/2.0.0/messageTrait.json" + } + ] + } + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.0.0/specificationExtension.json" + } + }, + "additionalProperties": false } ] } - ], - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0/message.json" -} \ No newline at end of file + ] +} diff --git a/definitions/2.0.0/messageTrait.json b/definitions/2.0.0/messageTrait.json index 21711541..33784e31 100644 --- a/definitions/2.0.0/messageTrait.json +++ b/definitions/2.0.0/messageTrait.json @@ -1,18 +1,45 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0/messageTrait.json", "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.0.0/specificationExtension.json" - } - }, "properties": { - "schemaFormat": { + "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": { + "type": "array", + "items": { + "type": "object" + } + }, + "deprecated": { + "default": false, + "type": "boolean" + }, + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.0.0/bindingsObject.json" + }, "contentType": { "type": "string" }, + "correlationId": { + "oneOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.0.0/Reference.json" + }, + { + "$ref": "http://asyncapi.com/definitions/2.0.0/correlationId.json" + } + ] + }, + "externalDocs": { + "$ref": "http://asyncapi.com/definitions/2.0.0/externalDocs.json" + }, "headers": { "allOf": [ { @@ -27,56 +54,29 @@ } ] }, - "correlationId": { - "oneOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.0.0/Reference.json" - }, - { - "$ref": "http://asyncapi.com/definitions/2.0.0/correlationId.json" - } - ] - }, - "tags": { - "type": "array", - "items": { - "$ref": "http://asyncapi.com/definitions/2.0.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." + "description": "Name of the message.", + "type": "string" }, - "externalDocs": { - "$ref": "http://asyncapi.com/definitions/2.0.0/externalDocs.json" + "schemaFormat": { + "type": "string" }, - "deprecated": { - "type": "boolean", - "default": false + "summary": { + "description": "A brief summary of the message.", + "type": "string" }, - "examples": { + "tags": { "type": "array", + "uniqueItems": true, "items": { - "type": "object" + "$ref": "http://asyncapi.com/definitions/2.0.0/tag.json" } - }, - "bindings": { - "$ref": "http://asyncapi.com/definitions/2.0.0/bindingsObject.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0/messageTrait.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.0.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.0.0/messages.json b/definitions/2.0.0/messages.json index 99222635..00d63cf5 100644 --- a/definitions/2.0.0/messages.json +++ b/definitions/2.0.0/messages.json @@ -1,9 +1,9 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0/messages.json", + "description": "JSON objects describing the messages being consumed and produced by the API.", "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.0.0/message.json" - }, - "description": "JSON objects describing the messages being consumed and produced by the API.", - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0/messages.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.0.0/oauth2Flow.json b/definitions/2.0.0/oauth2Flow.json index 844067ce..4f2e9f48 100644 --- a/definitions/2.0.0/oauth2Flow.json +++ b/definitions/2.0.0/oauth2Flow.json @@ -1,20 +1,22 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.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.0.0/oauth2Scopes.json" + }, + "tokenUrl": { + "type": "string", + "format": "uri" } }, "patternProperties": { @@ -22,7 +24,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0/oauth2Flow.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0/oauth2Flows.json b/definitions/2.0.0/oauth2Flows.json index 946a0215..70cdf48d 100644 --- a/definitions/2.0.0/oauth2Flows.json +++ b/definitions/2.0.0/oauth2Flows.json @@ -1,23 +1,25 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0/oauth2Flows.json", "type": "object", "required": [ "type", "flows" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "oauth2" ] }, - "description": { - "type": "string" - }, "flows": { "type": "object", "properties": { - "implicit": { + "authorizationCode": { "allOf": [ { "$ref": "http://asyncapi.com/definitions/2.0.0/oauth2Flow.json" @@ -25,19 +27,13 @@ { "required": [ "authorizationUrl", + "tokenUrl", "scopes" ] - }, - { - "not": { - "required": [ - "tokenUrl" - ] - } } ] }, - "password": { + "clientCredentials": { "allOf": [ { "$ref": "http://asyncapi.com/definitions/2.0.0/oauth2Flow.json" @@ -57,37 +53,43 @@ } ] }, - "clientCredentials": { + "implicit": { "allOf": [ { "$ref": "http://asyncapi.com/definitions/2.0.0/oauth2Flow.json" }, { "required": [ - "tokenUrl", + "authorizationUrl", "scopes" ] }, { "not": { "required": [ - "authorizationUrl" + "tokenUrl" ] } } ] }, - "authorizationCode": { + "password": { "allOf": [ { "$ref": "http://asyncapi.com/definitions/2.0.0/oauth2Flow.json" }, { "required": [ - "authorizationUrl", "tokenUrl", "scopes" ] + }, + { + "not": { + "required": [ + "authorizationUrl" + ] + } } ] } @@ -99,7 +101,5 @@ "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/2.0.0/specificationExtension.json" } - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0/oauth2Flows.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.0.0/oauth2Scopes.json b/definitions/2.0.0/oauth2Scopes.json index a8f50095..162165b8 100644 --- a/definitions/2.0.0/oauth2Scopes.json +++ b/definitions/2.0.0/oauth2Scopes.json @@ -1,8 +1,8 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0/oauth2Scopes.json", "type": "object", "additionalProperties": { "type": "string" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0/oauth2Scopes.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.0.0/openIdConnect.json b/definitions/2.0.0/openIdConnect.json index b584746d..79e751f2 100644 --- a/definitions/2.0.0/openIdConnect.json +++ b/definitions/2.0.0/openIdConnect.json @@ -1,19 +1,21 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0/openIdConnect.json", "type": "object", "required": [ "type", "openIdConnectUrl" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "openIdConnect" ] }, - "description": { - "type": "string" - }, "openIdConnectUrl": { "type": "string", "format": "uri" @@ -24,7 +26,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0/openIdConnect.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0/openapiSchema_3_0.json b/definitions/2.0.0/openapiSchema_3_0.json index baab1749..81f4956f 100644 --- a/definitions/2.0.0/openapiSchema_3_0.json +++ b/definitions/2.0.0/openapiSchema_3_0.json @@ -2,154 +2,26 @@ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "http://asyncapi.com/definitions/2.0.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 + "description": { + "type": "string" }, - "minProperties": { - "type": "integer", - "minimum": 0, - "default": 0 + "deprecated": { + "default": false, + "type": "boolean" }, - "required": { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "uniqueItems": true + "readOnly": { + "default": false, + "type": "boolean" }, - "enum": { - "type": "array", - "items": true, - "minItems": 1, - "uniqueItems": false + "writeOnly": { + "default": false, + "type": "boolean" }, + "default": true, "type": { "type": "string", "enum": [ @@ -161,15 +33,11 @@ "string" ] }, - "not": { - "oneOf": [ - { - "$ref": "#" - }, - { - "$ref": "#/definitions/Reference" - } - ] + "enum": { + "type": "array", + "minItems": 1, + "uniqueItems": false, + "items": true }, "allOf": { "type": "array", @@ -184,7 +52,7 @@ ] } }, - "oneOf": { + "anyOf": { "type": "array", "items": { "oneOf": [ @@ -197,7 +65,7 @@ ] } }, - "anyOf": { + "oneOf": { "type": "array", "items": { "oneOf": [ @@ -210,6 +78,63 @@ ] } }, + "not": { + "oneOf": [ + { + "$ref": "#" + }, + { + "$ref": "#/definitions/Reference" + } + ] + }, + "exclusiveMaximum": { + "default": false, + "type": "boolean" + }, + "maximum": { + "type": "number" + }, + "exclusiveMinimum": { + "default": false, + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "multipleOf": { + "type": "number", + "exclusiveMinimum": 0 + }, + "pattern": { + "type": "string", + "format": "regex" + }, + "format": { + "type": "string" + }, + "maxLength": { + "type": "integer", + "minimum": 0 + }, + "minLength": { + "default": 0, + "type": "integer", + "minimum": 0 + }, + "maxItems": { + "type": "integer", + "minimum": 0 + }, + "minItems": { + "default": 0, + "type": "integer", + "minimum": 0 + }, + "uniqueItems": { + "default": false, + "type": "boolean" + }, "items": { "oneOf": [ { @@ -220,6 +145,23 @@ } ] }, + "required": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "maxProperties": { + "type": "integer", + "minimum": 0 + }, + "minProperties": { + "default": 0, + "type": "integer", + "minimum": 0 + }, "properties": { "type": "object", "additionalProperties": { @@ -234,6 +176,7 @@ } }, "additionalProperties": { + "default": true, "oneOf": [ { "$ref": "#" @@ -244,38 +187,18 @@ { "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 + "nullable": { + "default": false, + "type": "boolean" }, "xml": { "$ref": "#/definitions/XML" @@ -284,5 +207,82 @@ "patternProperties": { "^x-": true }, - "additionalProperties": false -} \ No newline at end of file + "additionalProperties": false, + "definitions": { + "Discriminator": { + "type": "object", + "required": [ + "propertyName" + ], + "properties": { + "mapping": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "propertyName": { + "type": "string" + } + } + }, + "ExternalDocumentation": { + "type": "object", + "required": [ + "url" + ], + "properties": { + "description": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri-reference" + } + }, + "patternProperties": { + "^x-": {} + }, + "additionalProperties": false + }, + "Reference": { + "type": "object", + "required": [ + "$ref" + ], + "patternProperties": { + "^\\$ref$": { + "type": "string", + "format": "uri-reference" + } + } + }, + "XML": { + "type": "object", + "properties": { + "attribute": { + "default": false, + "type": "boolean" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string", + "format": "uri" + }, + "prefix": { + "type": "string" + }, + "wrapped": { + "default": false, + "type": "boolean" + } + }, + "patternProperties": { + "^x-": {} + }, + "additionalProperties": false + } + } +} diff --git a/definitions/2.0.0/operation.json b/definitions/2.0.0/operation.json index 1d04229d..c98550b2 100644 --- a/definitions/2.0.0/operation.json +++ b/definitions/2.0.0/operation.json @@ -1,12 +1,33 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0/operation.json", "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.0.0/specificationExtension.json" - } - }, "properties": { + "description": { + "type": "string" + }, + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.0.0/bindingsObject.json" + }, + "externalDocs": { + "$ref": "http://asyncapi.com/definitions/2.0.0/externalDocs.json" + }, + "message": { + "$ref": "http://asyncapi.com/definitions/2.0.0/message.json" + }, + "operationId": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "tags": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "http://asyncapi.com/definitions/2.0.0/tag.json" + } + }, "traits": { "type": "array", "items": { @@ -19,33 +40,12 @@ } ] } - }, - "summary": { - "type": "string" - }, - "description": { - "type": "string" - }, - "tags": { - "type": "array", - "items": { - "$ref": "http://asyncapi.com/definitions/2.0.0/tag.json" - }, - "uniqueItems": true - }, - "externalDocs": { - "$ref": "http://asyncapi.com/definitions/2.0.0/externalDocs.json" - }, - "operationId": { - "type": "string" - }, - "bindings": { - "$ref": "http://asyncapi.com/definitions/2.0.0/bindingsObject.json" - }, - "message": { - "$ref": "http://asyncapi.com/definitions/2.0.0/message.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0/operation.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.0.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.0.0/operationTrait.json b/definitions/2.0.0/operationTrait.json index 445019c4..9531d090 100644 --- a/definitions/2.0.0/operationTrait.json +++ b/definitions/2.0.0/operationTrait.json @@ -1,24 +1,13 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0/operationTrait.json", "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.0.0/specificationExtension.json" - } - }, "properties": { - "summary": { - "type": "string" - }, "description": { "type": "string" }, - "tags": { - "type": "array", - "items": { - "$ref": "http://asyncapi.com/definitions/2.0.0/tag.json" - }, - "uniqueItems": true + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.0.0/bindingsObject.json" }, "externalDocs": { "$ref": "http://asyncapi.com/definitions/2.0.0/externalDocs.json" @@ -26,10 +15,21 @@ "operationId": { "type": "string" }, - "bindings": { - "$ref": "http://asyncapi.com/definitions/2.0.0/bindingsObject.json" + "summary": { + "type": "string" + }, + "tags": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "http://asyncapi.com/definitions/2.0.0/tag.json" + } } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0/operationTrait.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.0.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.0.0/parameter.json b/definitions/2.0.0/parameter.json index 07520986..2d53680c 100644 --- a/definitions/2.0.0/parameter.json +++ b/definitions/2.0.0/parameter.json @@ -1,27 +1,27 @@ { - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.0.0/specificationExtension.json" - } - }, + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0/parameter.json", "properties": { "description": { - "type": "string", - "description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed." + "description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed.", + "type": "string" }, - "schema": { - "$ref": "http://asyncapi.com/definitions/2.0.0/schema.json" + "$ref": { + "$ref": "http://asyncapi.com/definitions/2.0.0/ReferenceObject.json" }, "location": { - "type": "string", "description": "A runtime expression that specifies the location of the parameter value", + "type": "string", "pattern": "^\\$message\\.(header|payload)#(\\/(([^\\/~])|(~[01]))*)*" }, - "$ref": { - "$ref": "http://asyncapi.com/definitions/2.0.0/ReferenceObject.json" + "schema": { + "$ref": "http://asyncapi.com/definitions/2.0.0/schema.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0/parameter.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.0.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.0.0/parameters.json b/definitions/2.0.0/parameters.json index 2bb2b264..da28c2d1 100644 --- a/definitions/2.0.0/parameters.json +++ b/definitions/2.0.0/parameters.json @@ -1,4 +1,7 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0/parameters.json", + "description": "JSON objects describing re-usable channel parameters.", "type": "object", "additionalProperties": { "oneOf": [ @@ -9,8 +12,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0/parameter.json" } ] - }, - "description": "JSON objects describing re-usable channel parameters.", - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0/parameters.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.0.0/schema.json b/definitions/2.0.0/schema.json index e1eb3742..eac20cb7 100644 --- a/definitions/2.0.0/schema.json +++ b/definitions/2.0.0/schema.json @@ -1,40 +1,15 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0/schema.json", "allOf": [ { "$ref": "http://json-schema.org/draft-07/schema#" }, { - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.0.0/specificationExtension.json" - } - }, "properties": { - "additionalProperties": { - "anyOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.0.0/schema.json" - }, - { - "type": "boolean" - } - ], - "default": {} - }, - "items": { - "anyOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.0.0/schema.json" - }, - { - "type": "array", - "minItems": 1, - "items": { - "$ref": "http://asyncapi.com/definitions/2.0.0/schema.json" - } - } - ], - "default": {} + "deprecated": { + "default": false, + "type": "boolean" }, "allOf": { "type": "array", @@ -43,14 +18,14 @@ "$ref": "http://asyncapi.com/definitions/2.0.0/schema.json" } }, - "oneOf": { + "anyOf": { "type": "array", "minItems": 1, "items": { "$ref": "http://asyncapi.com/definitions/2.0.0/schema.json" } }, - "anyOf": { + "oneOf": { "type": "array", "minItems": 1, "items": { @@ -60,39 +35,64 @@ "not": { "$ref": "http://asyncapi.com/definitions/2.0.0/schema.json" }, + "contains": { + "$ref": "http://asyncapi.com/definitions/2.0.0/schema.json" + }, + "items": { + "default": {}, + "anyOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.0.0/schema.json" + }, + { + "type": "array", + "minItems": 1, + "items": { + "$ref": "http://asyncapi.com/definitions/2.0.0/schema.json" + } + } + ] + }, + "propertyNames": { + "$ref": "http://asyncapi.com/definitions/2.0.0/schema.json" + }, "properties": { + "default": {}, "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.0.0/schema.json" - }, - "default": {} + } }, "patternProperties": { + "default": {}, "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.0.0/schema.json" - }, - "default": {} - }, - "propertyNames": { - "$ref": "http://asyncapi.com/definitions/2.0.0/schema.json" + } }, - "contains": { - "$ref": "http://asyncapi.com/definitions/2.0.0/schema.json" + "additionalProperties": { + "default": {}, + "anyOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.0.0/schema.json" + }, + { + "type": "boolean" + } + ] }, "discriminator": { "type": "string" }, "externalDocs": { "$ref": "http://asyncapi.com/definitions/2.0.0/externalDocs.json" - }, - "deprecated": { - "type": "boolean", - "default": false + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.0.0/specificationExtension.json" } } } - ], - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0/schema.json" -} \ No newline at end of file + ] +} diff --git a/definitions/2.0.0/schemas.json b/definitions/2.0.0/schemas.json index 294698e3..daabad43 100644 --- a/definitions/2.0.0/schemas.json +++ b/definitions/2.0.0/schemas.json @@ -1,9 +1,9 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0/schemas.json", + "description": "JSON objects describing schemas the API uses.", "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.0.0/schema.json" - }, - "description": "JSON objects describing schemas the API uses.", - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0/schemas.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.0.0/server.json b/definitions/2.0.0/server.json index a867aed3..d47db084 100644 --- a/definitions/2.0.0/server.json +++ b/definitions/2.0.0/server.json @@ -1,43 +1,43 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0/server.json", "description": "An object representing a Server.", + "type": "object", "required": [ "url", "protocol" ], - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.0.0/specificationExtension.json" - } - }, "properties": { - "url": { - "type": "string" - }, "description": { "type": "string" }, + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.0.0/bindingsObject.json" + }, "protocol": { - "type": "string", - "description": "The transfer protocol." + "description": "The transfer protocol.", + "type": "string" }, "protocolVersion": { "type": "string" }, - "variables": { - "$ref": "http://asyncapi.com/definitions/2.0.0/serverVariables.json" - }, "security": { "type": "array", "items": { "$ref": "http://asyncapi.com/definitions/2.0.0/SecurityRequirement.json" } }, - "bindings": { - "$ref": "http://asyncapi.com/definitions/2.0.0/bindingsObject.json" + "url": { + "type": "string" + }, + "variables": { + "$ref": "http://asyncapi.com/definitions/2.0.0/serverVariables.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0/server.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.0.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.0.0/serverVariable.json b/definitions/2.0.0/serverVariable.json index 63ca2194..a26593f9 100644 --- a/definitions/2.0.0/serverVariable.json +++ b/definitions/2.0.0/serverVariable.json @@ -1,33 +1,33 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0/serverVariable.json", "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.0.0/specificationExtension.json" - } - }, + "type": "object", "properties": { - "enum": { + "description": { + "type": "string" + }, + "examples": { "type": "array", "items": { "type": "string" - }, - "uniqueItems": true + } }, "default": { "type": "string" }, - "description": { - "type": "string" - }, - "examples": { + "enum": { "type": "array", + "uniqueItems": true, "items": { "type": "string" } } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0/serverVariable.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.0.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.0.0/serverVariables.json b/definitions/2.0.0/serverVariables.json index e4c70e8a..4571a65e 100644 --- a/definitions/2.0.0/serverVariables.json +++ b/definitions/2.0.0/serverVariables.json @@ -1,8 +1,8 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0/serverVariables.json", "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.0.0/serverVariable.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0/serverVariables.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.0.0/specificationExtension.json b/definitions/2.0.0/specificationExtension.json index 108e1fdd..eee8651b 100644 --- a/definitions/2.0.0/specificationExtension.json +++ b/definitions/2.0.0/specificationExtension.json @@ -1,7 +1,7 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0/specificationExtension.json", "description": "Any property starting with x- is valid.", - "additionalProperties": true, "additionalItems": true, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0/specificationExtension.json" -} \ No newline at end of file + "additionalProperties": true +} diff --git a/definitions/2.0.0/symmetricEncryption.json b/definitions/2.0.0/symmetricEncryption.json index da01f1b8..aa166d16 100644 --- a/definitions/2.0.0/symmetricEncryption.json +++ b/definitions/2.0.0/symmetricEncryption.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0/symmetricEncryption.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "symmetricEncryption" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,7 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0/symmetricEncryption.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0/tag.json b/definitions/2.0.0/tag.json index fc00fdfb..5884a6b5 100644 --- a/definitions/2.0.0/tag.json +++ b/definitions/2.0.0/tag.json @@ -1,18 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0/tag.json", "type": "object", - "additionalProperties": false, "required": [ "name" ], "properties": { - "name": { - "type": "string" - }, "description": { "type": "string" }, "externalDocs": { "$ref": "http://asyncapi.com/definitions/2.0.0/externalDocs.json" + }, + "name": { + "type": "string" } }, "patternProperties": { @@ -20,6 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0/specificationExtension.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0/tag.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.0.0/userPassword.json b/definitions/2.0.0/userPassword.json index 03b7c152..cb855f8f 100644 --- a/definitions/2.0.0/userPassword.json +++ b/definitions/2.0.0/userPassword.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.0.0/userPassword.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "userPassword" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,7 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.0.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.0.0/userPassword.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.1.0/APIKeyHTTPSecurityScheme.json b/definitions/2.1.0/APIKeyHTTPSecurityScheme.json index 30835d3c..298daac1 100644 --- a/definitions/2.1.0/APIKeyHTTPSecurityScheme.json +++ b/definitions/2.1.0/APIKeyHTTPSecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.1.0/APIKeyHTTPSecurityScheme.json", "type": "object", "required": [ "type", @@ -6,15 +8,15 @@ "in" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "httpApiKey" ] }, - "name": { - "type": "string" - }, "in": { "type": "string", "enum": [ @@ -23,7 +25,7 @@ "cookie" ] }, - "description": { + "name": { "type": "string" } }, @@ -32,7 +34,5 @@ "$ref": "http://asyncapi.com/definitions/2.1.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.1.0/APIKeyHTTPSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.1.0/BearerHTTPSecurityScheme.json b/definitions/2.1.0/BearerHTTPSecurityScheme.json index 42a802ee..0f963a4b 100644 --- a/definitions/2.1.0/BearerHTTPSecurityScheme.json +++ b/definitions/2.1.0/BearerHTTPSecurityScheme.json @@ -1,27 +1,29 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.1.0/BearerHTTPSecurityScheme.json", "type": "object", "required": [ "type", "scheme" ], "properties": { - "scheme": { + "description": { + "type": "string" + }, + "type": { "type": "string", "enum": [ - "bearer" + "http" ] }, "bearerFormat": { "type": "string" }, - "type": { + "scheme": { "type": "string", "enum": [ - "http" + "bearer" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -29,7 +31,5 @@ "$ref": "http://asyncapi.com/definitions/2.1.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.1.0/BearerHTTPSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.1.0/HTTPSecurityScheme.json b/definitions/2.1.0/HTTPSecurityScheme.json index 75016117..8e1ec53a 100644 --- a/definitions/2.1.0/HTTPSecurityScheme.json +++ b/definitions/2.1.0/HTTPSecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.1.0/HTTPSecurityScheme.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/2.1.0/NonBearerHTTPSecurityScheme.json" @@ -9,7 +11,5 @@ { "$ref": "http://asyncapi.com/definitions/2.1.0/APIKeyHTTPSecurityScheme.json" } - ], - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.1.0/HTTPSecurityScheme.json" -} \ No newline at end of file + ] +} diff --git a/definitions/2.1.0/NonBearerHTTPSecurityScheme.json b/definitions/2.1.0/NonBearerHTTPSecurityScheme.json index 99ebd105..db15014b 100644 --- a/definitions/2.1.0/NonBearerHTTPSecurityScheme.json +++ b/definitions/2.1.0/NonBearerHTTPSecurityScheme.json @@ -1,4 +1,7 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.1.0/NonBearerHTTPSecurityScheme.json", + "type": "object", "not": { "type": "object", "properties": { @@ -10,15 +13,11 @@ } } }, - "type": "object", "required": [ "scheme", "type" ], "properties": { - "scheme": { - "type": "string" - }, "description": { "type": "string" }, @@ -27,6 +26,9 @@ "enum": [ "http" ] + }, + "scheme": { + "type": "string" } }, "patternProperties": { @@ -34,7 +36,5 @@ "$ref": "http://asyncapi.com/definitions/2.1.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.1.0/NonBearerHTTPSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.1.0/Reference.json b/definitions/2.1.0/Reference.json index b35a1343..321316d0 100644 --- a/definitions/2.1.0/Reference.json +++ b/definitions/2.1.0/Reference.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.1.0/Reference.json", "type": "object", "required": [ "$ref" @@ -7,7 +9,5 @@ "$ref": { "$ref": "http://asyncapi.com/definitions/2.1.0/ReferenceObject.json" } - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.1.0/Reference.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.1.0/ReferenceObject.json b/definitions/2.1.0/ReferenceObject.json index 7f7e8c7b..15c66268 100644 --- a/definitions/2.1.0/ReferenceObject.json +++ b/definitions/2.1.0/ReferenceObject.json @@ -1,6 +1,6 @@ { - "type": "string", - "format": "uri-reference", "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.1.0/ReferenceObject.json" -} \ No newline at end of file + "$id": "http://asyncapi.com/definitions/2.1.0/ReferenceObject.json", + "type": "string", + "format": "uri-reference" +} diff --git a/definitions/2.1.0/SaslGssapiSecurityScheme.json b/definitions/2.1.0/SaslGssapiSecurityScheme.json index 9ff04e0f..3e788dc2 100644 --- a/definitions/2.1.0/SaslGssapiSecurityScheme.json +++ b/definitions/2.1.0/SaslGssapiSecurityScheme.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.1.0/SaslGssapiSecurityScheme.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "gssapi" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,7 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.1.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.1.0/SaslGssapiSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.1.0/SaslPlainSecurityScheme.json b/definitions/2.1.0/SaslPlainSecurityScheme.json index 95425d1e..cfedaac2 100644 --- a/definitions/2.1.0/SaslPlainSecurityScheme.json +++ b/definitions/2.1.0/SaslPlainSecurityScheme.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.1.0/SaslPlainSecurityScheme.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "plain" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,7 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.1.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.1.0/SaslPlainSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.1.0/SaslScramSecurityScheme.json b/definitions/2.1.0/SaslScramSecurityScheme.json index c0c2c745..8b2b754d 100644 --- a/definitions/2.1.0/SaslScramSecurityScheme.json +++ b/definitions/2.1.0/SaslScramSecurityScheme.json @@ -1,18 +1,20 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.1.0/SaslScramSecurityScheme.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "scramSha256", "scramSha512" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -20,7 +22,5 @@ "$ref": "http://asyncapi.com/definitions/2.1.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.1.0/SaslScramSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.1.0/SaslSecurityScheme.json b/definitions/2.1.0/SaslSecurityScheme.json index f2e86222..62987565 100644 --- a/definitions/2.1.0/SaslSecurityScheme.json +++ b/definitions/2.1.0/SaslSecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.1.0/SaslSecurityScheme.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/2.1.0/SaslPlainSecurityScheme.json" @@ -9,7 +11,5 @@ { "$ref": "http://asyncapi.com/definitions/2.1.0/SaslGssapiSecurityScheme.json" } - ], - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.1.0/SaslSecurityScheme.json" -} \ No newline at end of file + ] +} diff --git a/definitions/2.1.0/SecurityRequirement.json b/definitions/2.1.0/SecurityRequirement.json index c2666865..81a0e791 100644 --- a/definitions/2.1.0/SecurityRequirement.json +++ b/definitions/2.1.0/SecurityRequirement.json @@ -1,12 +1,12 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.1.0/SecurityRequirement.json", "type": "object", "additionalProperties": { "type": "array", + "uniqueItems": true, "items": { "type": "string" - }, - "uniqueItems": true - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.1.0/SecurityRequirement.json" -} \ No newline at end of file + } + } +} diff --git a/definitions/2.1.0/SecurityScheme.json b/definitions/2.1.0/SecurityScheme.json index 3fc7c05f..c691faaf 100644 --- a/definitions/2.1.0/SecurityScheme.json +++ b/definitions/2.1.0/SecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.1.0/SecurityScheme.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/2.1.0/userPassword.json" @@ -27,7 +29,5 @@ { "$ref": "http://asyncapi.com/definitions/2.1.0/SaslSecurityScheme.json" } - ], - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.1.0/SecurityScheme.json" -} \ No newline at end of file + ] +} diff --git a/definitions/2.1.0/X509.json b/definitions/2.1.0/X509.json index 2e2cdcc5..6c524820 100644 --- a/definitions/2.1.0/X509.json +++ b/definitions/2.1.0/X509.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.1.0/X509.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "X509" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,7 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.1.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.1.0/X509.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.1.0/apiKey.json b/definitions/2.1.0/apiKey.json index de4128db..d0b6eab5 100644 --- a/definitions/2.1.0/apiKey.json +++ b/definitions/2.1.0/apiKey.json @@ -1,10 +1,15 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.1.0/apiKey.json", "type": "object", "required": [ "type", "in" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ @@ -17,9 +22,6 @@ "user", "password" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -27,7 +29,5 @@ "$ref": "http://asyncapi.com/definitions/2.1.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.1.0/apiKey.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.1.0/asymmetricEncryption.json b/definitions/2.1.0/asymmetricEncryption.json index 1af3f377..f30bec49 100644 --- a/definitions/2.1.0/asymmetricEncryption.json +++ b/definitions/2.1.0/asymmetricEncryption.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.1.0/asymmetricEncryption.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "asymmetricEncryption" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,7 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.1.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.1.0/asymmetricEncryption.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.1.0/asyncapi.json b/definitions/2.1.0/asyncapi.json index 98b66931..6108ae38 100644 --- a/definitions/2.1.0/asyncapi.json +++ b/definitions/2.1.0/asyncapi.json @@ -1,31 +1,37 @@ { - "title": "AsyncAPI 2.1.0 schema.", "$schema": "http://json-schema.org/draft-07/schema#", "$id": "http://asyncapi.com/definitions/2.1.0/asyncapi.json", + "title": "AsyncAPI 2.1.0 schema.", "type": "object", "required": [ "asyncapi", "info", "channels" ], - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.1.0/specificationExtension.json" - } - }, "properties": { + "id": { + "description": "A unique id representing the application.", + "type": "string", + "format": "uri" + }, "asyncapi": { + "description": "The AsyncAPI specification version of this document.", "type": "string", "enum": [ "2.1.0" - ], - "description": "The AsyncAPI specification version of this document." + ] }, - "id": { - "type": "string", - "description": "A unique id representing the application.", - "format": "uri" + "channels": { + "$ref": "http://asyncapi.com/definitions/2.1.0/channels.json" + }, + "components": { + "$ref": "http://asyncapi.com/definitions/2.1.0/components.json" + }, + "defaultContentType": { + "type": "string" + }, + "externalDocs": { + "$ref": "http://asyncapi.com/definitions/2.1.0/externalDocs.json" }, "info": { "$ref": "http://asyncapi.com/definitions/2.1.0/info.json" @@ -36,24 +42,18 @@ "$ref": "http://asyncapi.com/definitions/2.1.0/server.json" } }, - "defaultContentType": { - "type": "string" - }, - "channels": { - "$ref": "http://asyncapi.com/definitions/2.1.0/channels.json" - }, - "components": { - "$ref": "http://asyncapi.com/definitions/2.1.0/components.json" - }, "tags": { "type": "array", + "uniqueItems": true, "items": { "$ref": "http://asyncapi.com/definitions/2.1.0/tag.json" - }, - "uniqueItems": true - }, - "externalDocs": { - "$ref": "http://asyncapi.com/definitions/2.1.0/externalDocs.json" + } } - } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.1.0/specificationExtension.json" + } + }, + "additionalProperties": false } diff --git a/definitions/2.1.0/avroSchema_v1.json b/definitions/2.1.0/avroSchema_v1.json index be559eff..cee2e1cd 100644 --- a/definitions/2.1.0/avroSchema_v1.json +++ b/definitions/2.1.0/avroSchema_v1.json @@ -1,220 +1,131 @@ { "$schema": "http://json-schema.org/draft-07/schema#", "$id": "http://asyncapi.com/definitions/2.1.0/avroSchema_v1.json", + "title": "Avro Schema Definition", + "description": "Json-Schema definition for Avro AVSC files.", + "oneOf": [ + { + "$ref": "#/definitions/avroSchema" + } + ], "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.", + "avroArray": { + "title": "Array", + "description": "An array", "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", + "type", + "items" + ], "properties": { - "name": { - "$ref": "#/definitions/name" - }, "type": { - "$ref": "#/definitions/types" - }, - "doc": { - "type": "string" + "type": "string", + "const": "array" }, - "default": true, - "order": { - "enum": [ - "ascending", - "descending", - "ignore" - ] + "items": { + "$ref": "#/definitions/types" }, "aliases": { "type": "array", "items": { "$ref": "#/definitions/name" } - } - }, - "required": [ - "name", - "type" - ] - }, - "avroRecord": { - "title": "Record", - "description": "A Record", - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "record" + }, + "doc": { + "type": "string" }, "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", + "required": [ + "type", + "name", + "symbols" + ], "properties": { "type": { "type": "string", "const": "enum" }, + "aliases": { + "type": "array", + "items": { + "$ref": "#/definitions/name" + } + }, + "doc": { + "type": "string" + }, "name": { "$ref": "#/definitions/name" }, "namespace": { "$ref": "#/definitions/namespace" }, - "doc": { - "type": "string" - }, - "aliases": { + "symbols": { "type": "array", "items": { "$ref": "#/definitions/name" } + } + } + }, + "avroField": { + "title": "Field", + "description": "A field within a Record", + "type": "object", + "required": [ + "name", + "type" + ], + "properties": { + "default": true, + "type": { + "$ref": "#/definitions/types" }, - "symbols": { + "aliases": { "type": "array", "items": { "$ref": "#/definitions/name" } + }, + "doc": { + "type": "string" + }, + "name": { + "$ref": "#/definitions/name" + }, + "order": { + "enum": [ + "ascending", + "descending", + "ignore" + ] } - }, + } + }, + "avroFixed": { + "title": "Fixed", + "description": "A fixed sized array of bytes", + "type": "object", "required": [ "type", "name", - "symbols" - ] - }, - "avroArray": { - "title": "Array", - "description": "An array", - "type": "object", + "size" + ], "properties": { "type": { "type": "string", - "const": "array" - }, - "name": { - "$ref": "#/definitions/name" - }, - "namespace": { - "$ref": "#/definitions/namespace" - }, - "doc": { - "type": "string" + "const": "fixed" }, "aliases": { "type": "array", @@ -222,82 +133,117 @@ "$ref": "#/definitions/name" } }, - "items": { - "$ref": "#/definitions/types" + "doc": { + "type": "string" + }, + "name": { + "$ref": "#/definitions/name" + }, + "namespace": { + "$ref": "#/definitions/namespace" + }, + "size": { + "type": "number" } - }, - "required": [ - "type", - "items" - ] + } }, "avroMap": { "title": "Map", "description": "A map of values", "type": "object", + "required": [ + "type", + "values" + ], "properties": { "type": { "type": "string", "const": "map" }, - "name": { - "$ref": "#/definitions/name" - }, - "namespace": { - "$ref": "#/definitions/namespace" - }, - "doc": { - "type": "string" - }, "aliases": { "type": "array", "items": { "$ref": "#/definitions/name" } }, + "doc": { + "type": "string" + }, + "name": { + "$ref": "#/definitions/name" + }, + "namespace": { + "$ref": "#/definitions/namespace" + }, "values": { "$ref": "#/definitions/types" } - }, - "required": [ - "type", - "values" - ] + } }, - "avroFixed": { - "title": "Fixed", - "description": "A fixed sized array of bytes", + "avroRecord": { + "title": "Record", + "description": "A Record", "type": "object", + "required": [ + "type", + "name", + "fields" + ], "properties": { "type": { "type": "string", - "const": "fixed" - }, - "name": { - "$ref": "#/definitions/name" + "const": "record" }, - "namespace": { - "$ref": "#/definitions/namespace" + "aliases": { + "type": "array", + "items": { + "$ref": "#/definitions/name" + } }, "doc": { "type": "string" }, - "aliases": { + "fields": { "type": "array", "items": { - "$ref": "#/definitions/name" + "$ref": "#/definitions/avroField" } }, - "size": { - "type": "number" + "name": { + "$ref": "#/definitions/name" + }, + "namespace": { + "$ref": "#/definitions/namespace" + } + } + }, + "avroSchema": { + "title": "Avro Schema", + "description": "Root Schema", + "oneOf": [ + { + "$ref": "#/definitions/types" } - }, - "required": [ - "type", - "name", - "size" ] }, + "avroUnion": { + "title": "Union", + "description": "A Union of types", + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/definitions/avroSchema" + } + }, + "customTypeReference": { + "title": "Custom Type", + "description": "Reference to a ComplexType", + "type": "string", + "not": { + "$ref": "#/definitions/primitiveType" + }, + "pattern": "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$" + }, "name": { "type": "string", "pattern": "^[A-Za-z_][A-Za-z0-9_]*$" @@ -305,13 +251,67 @@ "namespace": { "type": "string", "pattern": "^([A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*)*$" + }, + "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", + "required": [ + "type" + ], + "properties": { + "type": { + "$ref": "#/definitions/primitiveType" + } + } + }, + "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" + } + ] } - }, - "description": "Json-Schema definition for Avro AVSC files.", - "oneOf": [ - { - "$ref": "#/definitions/avroSchema" - } - ], - "title": "Avro Schema Definition" -} \ No newline at end of file + } +} diff --git a/definitions/2.1.0/bindingsObject.json b/definitions/2.1.0/bindingsObject.json index 62a80754..8faf365a 100644 --- a/definitions/2.1.0/bindingsObject.json +++ b/definitions/2.1.0/bindingsObject.json @@ -1,22 +1,22 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.1.0/bindingsObject.json", "type": "object", - "additionalProperties": true, "properties": { - "http": {}, - "ws": {}, "amqp": {}, "amqp1": {}, + "http": {}, + "ibmmq": {}, + "jms": {}, + "kafka": {}, "mqtt": {}, "mqtt5": {}, - "kafka": {}, "nats": {}, - "jms": {}, + "redis": {}, "sns": {}, "sqs": {}, "stomp": {}, - "redis": {}, - "ibmmq": {} + "ws": {} }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.1.0/bindingsObject.json" -} \ No newline at end of file + "additionalProperties": true +} diff --git a/definitions/2.1.0/channelItem.json b/definitions/2.1.0/channelItem.json index c10589df..ab2f70c7 100644 --- a/definitions/2.1.0/channelItem.json +++ b/definitions/2.1.0/channelItem.json @@ -1,36 +1,36 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.1.0/channelItem.json", "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.1.0/specificationExtension.json" - } - }, "properties": { + "description": { + "description": "A description of the channel.", + "type": "string" + }, + "deprecated": { + "default": false, + "type": "boolean" + }, "$ref": { "$ref": "http://asyncapi.com/definitions/2.1.0/ReferenceObject.json" }, + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.1.0/bindingsObject.json" + }, "parameters": { "$ref": "http://asyncapi.com/definitions/2.1.0/parameters.json" }, - "description": { - "type": "string", - "description": "A description of the channel." - }, "publish": { "$ref": "http://asyncapi.com/definitions/2.1.0/operation.json" }, "subscribe": { "$ref": "http://asyncapi.com/definitions/2.1.0/operation.json" - }, - "deprecated": { - "type": "boolean", - "default": false - }, - "bindings": { - "$ref": "http://asyncapi.com/definitions/2.1.0/bindingsObject.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.1.0/channelItem.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.1.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.1.0/channels.json b/definitions/2.1.0/channels.json index 4f9d4c29..ee2e4764 100644 --- a/definitions/2.1.0/channels.json +++ b/definitions/2.1.0/channels.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.1.0/channels.json", "type": "object", "propertyNames": { "type": "string", @@ -7,7 +9,5 @@ }, "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.1.0/channelItem.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.1.0/channels.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.1.0/components.json b/definitions/2.1.0/components.json index aa31f7bb..8c7a7d88 100644 --- a/definitions/2.1.0/components.json +++ b/definitions/2.1.0/components.json @@ -1,37 +1,15 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.1.0/components.json", "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.1.0/specificationExtension.json" - } - }, + "type": "object", "properties": { - "schemas": { - "$ref": "http://asyncapi.com/definitions/2.1.0/schemas.json" - }, - "messages": { - "$ref": "http://asyncapi.com/definitions/2.1.0/messages.json" - }, - "securitySchemes": { + "channelBindings": { "type": "object", - "patternProperties": { - "^[\\w\\d\\.\\-_]+$": { - "oneOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.1.0/Reference.json" - }, - { - "$ref": "http://asyncapi.com/definitions/2.1.0/SecurityScheme.json" - } - ] - } + "additionalProperties": { + "$ref": "http://asyncapi.com/definitions/2.1.0/bindingsObject.json" } }, - "parameters": { - "$ref": "http://asyncapi.com/definitions/2.1.0/parameters.json" - }, "correlationIds": { "type": "object", "patternProperties": { @@ -47,10 +25,10 @@ } } }, - "operationTraits": { + "messageBindings": { "type": "object", "additionalProperties": { - "$ref": "http://asyncapi.com/definitions/2.1.0/operationTrait.json" + "$ref": "http://asyncapi.com/definitions/2.1.0/bindingsObject.json" } }, "messageTraits": { @@ -59,31 +37,53 @@ "$ref": "http://asyncapi.com/definitions/2.1.0/messageTrait.json" } }, - "serverBindings": { + "messages": { + "$ref": "http://asyncapi.com/definitions/2.1.0/messages.json" + }, + "operationBindings": { "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.1.0/bindingsObject.json" } }, - "channelBindings": { + "operationTraits": { "type": "object", "additionalProperties": { - "$ref": "http://asyncapi.com/definitions/2.1.0/bindingsObject.json" + "$ref": "http://asyncapi.com/definitions/2.1.0/operationTrait.json" } }, - "operationBindings": { + "parameters": { + "$ref": "http://asyncapi.com/definitions/2.1.0/parameters.json" + }, + "schemas": { + "$ref": "http://asyncapi.com/definitions/2.1.0/schemas.json" + }, + "securitySchemes": { "type": "object", - "additionalProperties": { - "$ref": "http://asyncapi.com/definitions/2.1.0/bindingsObject.json" + "patternProperties": { + "^[\\w\\d\\.\\-_]+$": { + "oneOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.1.0/Reference.json" + }, + { + "$ref": "http://asyncapi.com/definitions/2.1.0/SecurityScheme.json" + } + ] + } } }, - "messageBindings": { + "serverBindings": { "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.1.0/bindingsObject.json" } } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.1.0/components.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.1.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.1.0/contact.json b/definitions/2.1.0/contact.json index 18a01563..f197ff1c 100644 --- a/definitions/2.1.0/contact.json +++ b/definitions/2.1.0/contact.json @@ -1,21 +1,22 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.1.0/contact.json", "description": "Contact information for the owners of the API.", - "additionalProperties": false, + "type": "object", "properties": { - "name": { + "email": { + "description": "The email address of the contact person/organization.", "type": "string", - "description": "The identifying name of the contact person/organization." + "format": "email" + }, + "name": { + "description": "The identifying name of the contact person/organization.", + "type": "string" }, "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" + "format": "uri" } }, "patternProperties": { @@ -23,6 +24,5 @@ "$ref": "http://asyncapi.com/definitions/2.1.0/specificationExtension.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.1.0/contact.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.1.0/correlationId.json b/definitions/2.1.0/correlationId.json index 7ce1b11a..c7b5fb23 100644 --- a/definitions/2.1.0/correlationId.json +++ b/definitions/2.1.0/correlationId.json @@ -1,25 +1,25 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.1.0/correlationId.json", "type": "object", "required": [ "location" ], - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.1.0/specificationExtension.json" - } - }, "properties": { "description": { - "type": "string", - "description": "A optional description of the correlation ID. GitHub Flavored Markdown is allowed." + "description": "A optional description of the correlation ID. GitHub Flavored Markdown is allowed.", + "type": "string" }, "location": { - "type": "string", "description": "A runtime expression that specifies the location of the correlation ID", + "type": "string", "pattern": "^\\$message\\.(header|payload)#(\\/(([^\\/~])|(~[01]))*)*" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.1.0/correlationId.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.1.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.1.0/externalDocs.json b/definitions/2.1.0/externalDocs.json index 0e4199fe..02f44274 100644 --- a/definitions/2.1.0/externalDocs.json +++ b/definitions/2.1.0/externalDocs.json @@ -1,7 +1,8 @@ { - "type": "object", - "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.1.0/externalDocs.json", "description": "information about external documentation", + "type": "object", "required": [ "url" ], @@ -19,6 +20,5 @@ "$ref": "http://asyncapi.com/definitions/2.1.0/specificationExtension.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.1.0/externalDocs.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.1.0/info.json b/definitions/2.1.0/info.json index becac9ac..4ee06d03 100644 --- a/definitions/2.1.0/info.json +++ b/definitions/2.1.0/info.json @@ -1,41 +1,41 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.1.0/info.json", "description": "General information about the API.", + "type": "object", "required": [ "version", "title" ], - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.1.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": "A unique and precise title of the API.", + "type": "string" }, "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" + "description": "A longer description of the API. Should be different from the title. CommonMark is allowed.", + "type": "string" }, "contact": { "$ref": "http://asyncapi.com/definitions/2.1.0/contact.json" }, "license": { "$ref": "http://asyncapi.com/definitions/2.1.0/license.json" + }, + "termsOfService": { + "description": "A URL to the Terms of Service for the API. MUST be in the format of a URL.", + "type": "string", + "format": "uri" + }, + "version": { + "description": "A semantic version number of the API.", + "type": "string" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.1.0/info.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.1.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.1.0/license.json b/definitions/2.1.0/license.json index 4bed4d19..b35a1998 100644 --- a/definitions/2.1.0/license.json +++ b/definitions/2.1.0/license.json @@ -1,17 +1,18 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.1.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." + "description": "The name of the license type. It's encouraged to use an OSI compatible license.", + "type": "string" }, "url": { - "type": "string", "description": "The URL pointing to the license.", + "type": "string", "format": "uri" } }, @@ -20,6 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.1.0/specificationExtension.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.1.0/license.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.1.0/message.json b/definitions/2.1.0/message.json index ef9f65da..bb8f6f1d 100644 --- a/definitions/2.1.0/message.json +++ b/definitions/2.1.0/message.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.1.0/message.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/2.1.0/Reference.json" @@ -10,7 +12,6 @@ "required": [ "oneOf" ], - "additionalProperties": false, "properties": { "oneOf": { "type": "array", @@ -18,128 +19,11 @@ "$ref": "http://asyncapi.com/definitions/2.1.0/message.json" } } - } + }, + "additionalProperties": false }, { "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.1.0/specificationExtension.json" - } - }, - "properties": { - "schemaFormat": { - "type": "string" - }, - "contentType": { - "type": "string" - }, - "headers": { - "allOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.1.0/schema.json" - }, - { - "properties": { - "type": { - "const": "object" - } - } - } - ] - }, - "payload": {}, - "correlationId": { - "oneOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.1.0/Reference.json" - }, - { - "$ref": "http://asyncapi.com/definitions/2.1.0/correlationId.json" - } - ] - }, - "tags": { - "type": "array", - "items": { - "$ref": "http://asyncapi.com/definitions/2.1.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.1.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.1.0/bindingsObject.json" - }, - "traits": { - "type": "array", - "items": { - "oneOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.1.0/Reference.json" - }, - { - "$ref": "http://asyncapi.com/definitions/2.1.0/messageTrait.json" - } - ] - } - } - }, "allOf": [ { "if": { @@ -213,8 +97,8 @@ "properties": { "schemaFormat": { "enum": [ - "application/vnd.oai.openapi;version=3.0.0", - "application/vnd.oai.openapi+json;version=3.0.0", + "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" ] } @@ -251,11 +135,127 @@ } } } - ] + ], + "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": { + "type": "array", + "items": { + "type": "object", + "anyOf": [ + { + "required": [ + "payload" + ] + }, + { + "required": [ + "headers" + ] + } + ], + "properties": { + "headers": { + "type": "object" + }, + "name": { + "description": "Machine readable name of the message example.", + "type": "string" + }, + "payload": {}, + "summary": { + "description": "A brief summary of the message example.", + "type": "string" + } + }, + "additionalProperties": false + } + }, + "deprecated": { + "default": false, + "type": "boolean" + }, + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.1.0/bindingsObject.json" + }, + "contentType": { + "type": "string" + }, + "correlationId": { + "oneOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.1.0/Reference.json" + }, + { + "$ref": "http://asyncapi.com/definitions/2.1.0/correlationId.json" + } + ] + }, + "externalDocs": { + "$ref": "http://asyncapi.com/definitions/2.1.0/externalDocs.json" + }, + "headers": { + "allOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.1.0/schema.json" + }, + { + "properties": { + "type": { + "const": "object" + } + } + } + ] + }, + "name": { + "description": "Name of the message.", + "type": "string" + }, + "payload": {}, + "schemaFormat": { + "type": "string" + }, + "summary": { + "description": "A brief summary of the message.", + "type": "string" + }, + "tags": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "http://asyncapi.com/definitions/2.1.0/tag.json" + } + }, + "traits": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.1.0/Reference.json" + }, + { + "$ref": "http://asyncapi.com/definitions/2.1.0/messageTrait.json" + } + ] + } + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.1.0/specificationExtension.json" + } + }, + "additionalProperties": false } ] } - ], - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.1.0/message.json" -} \ No newline at end of file + ] +} diff --git a/definitions/2.1.0/messageTrait.json b/definitions/2.1.0/messageTrait.json index a209ffdf..27085cdf 100644 --- a/definitions/2.1.0/messageTrait.json +++ b/definitions/2.1.0/messageTrait.json @@ -1,77 +1,20 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.1.0/messageTrait.json", "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.1.0/specificationExtension.json" - } - }, "properties": { - "schemaFormat": { - "type": "string" - }, - "contentType": { - "type": "string" - }, - "headers": { - "allOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.1.0/schema.json" - }, - { - "properties": { - "type": { - "const": "object" - } - } - } - ] - }, - "correlationId": { - "oneOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.1.0/Reference.json" - }, - { - "$ref": "http://asyncapi.com/definitions/2.1.0/correlationId.json" - } - ] - }, - "tags": { - "type": "array", - "items": { - "$ref": "http://asyncapi.com/definitions/2.1.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": "A human-friendly title for the message.", + "type": "string" }, "description": { - "type": "string", - "description": "A longer description of the message. CommonMark is allowed." - }, - "externalDocs": { - "$ref": "http://asyncapi.com/definitions/2.1.0/externalDocs.json" - }, - "deprecated": { - "type": "boolean", - "default": false + "description": "A longer description of the message. CommonMark is allowed.", + "type": "string" }, "examples": { "type": "array", "items": { "type": "object", - "additionalProperties": false, "anyOf": [ { "required": [ @@ -85,25 +28,82 @@ } ], "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": {} - } + "name": { + "description": "Machine readable name of the message example.", + "type": "string" + }, + "payload": {}, + "summary": { + "description": "A brief summary of the message example.", + "type": "string" + } + }, + "additionalProperties": false } }, + "deprecated": { + "default": false, + "type": "boolean" + }, "bindings": { "$ref": "http://asyncapi.com/definitions/2.1.0/bindingsObject.json" + }, + "contentType": { + "type": "string" + }, + "correlationId": { + "oneOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.1.0/Reference.json" + }, + { + "$ref": "http://asyncapi.com/definitions/2.1.0/correlationId.json" + } + ] + }, + "externalDocs": { + "$ref": "http://asyncapi.com/definitions/2.1.0/externalDocs.json" + }, + "headers": { + "allOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.1.0/schema.json" + }, + { + "properties": { + "type": { + "const": "object" + } + } + } + ] + }, + "name": { + "description": "Name of the message.", + "type": "string" + }, + "schemaFormat": { + "type": "string" + }, + "summary": { + "description": "A brief summary of the message.", + "type": "string" + }, + "tags": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "http://asyncapi.com/definitions/2.1.0/tag.json" + } } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.1.0/messageTrait.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.1.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.1.0/messages.json b/definitions/2.1.0/messages.json index 223eca4b..5a199a70 100644 --- a/definitions/2.1.0/messages.json +++ b/definitions/2.1.0/messages.json @@ -1,9 +1,9 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.1.0/messages.json", + "description": "JSON objects describing the messages being consumed and produced by the API.", "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.1.0/message.json" - }, - "description": "JSON objects describing the messages being consumed and produced by the API.", - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.1.0/messages.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.1.0/oauth2Flow.json b/definitions/2.1.0/oauth2Flow.json index 71c32cfd..bf38383d 100644 --- a/definitions/2.1.0/oauth2Flow.json +++ b/definitions/2.1.0/oauth2Flow.json @@ -1,20 +1,22 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.1.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.1.0/oauth2Scopes.json" + }, + "tokenUrl": { + "type": "string", + "format": "uri" } }, "patternProperties": { @@ -22,7 +24,5 @@ "$ref": "http://asyncapi.com/definitions/2.1.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.1.0/oauth2Flow.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.1.0/oauth2Flows.json b/definitions/2.1.0/oauth2Flows.json index 56cea128..eedf6ff6 100644 --- a/definitions/2.1.0/oauth2Flows.json +++ b/definitions/2.1.0/oauth2Flows.json @@ -1,23 +1,25 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.1.0/oauth2Flows.json", "type": "object", "required": [ "type", "flows" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "oauth2" ] }, - "description": { - "type": "string" - }, "flows": { "type": "object", "properties": { - "implicit": { + "authorizationCode": { "allOf": [ { "$ref": "http://asyncapi.com/definitions/2.1.0/oauth2Flow.json" @@ -25,19 +27,13 @@ { "required": [ "authorizationUrl", + "tokenUrl", "scopes" ] - }, - { - "not": { - "required": [ - "tokenUrl" - ] - } } ] }, - "password": { + "clientCredentials": { "allOf": [ { "$ref": "http://asyncapi.com/definitions/2.1.0/oauth2Flow.json" @@ -57,37 +53,43 @@ } ] }, - "clientCredentials": { + "implicit": { "allOf": [ { "$ref": "http://asyncapi.com/definitions/2.1.0/oauth2Flow.json" }, { "required": [ - "tokenUrl", + "authorizationUrl", "scopes" ] }, { "not": { "required": [ - "authorizationUrl" + "tokenUrl" ] } } ] }, - "authorizationCode": { + "password": { "allOf": [ { "$ref": "http://asyncapi.com/definitions/2.1.0/oauth2Flow.json" }, { "required": [ - "authorizationUrl", "tokenUrl", "scopes" ] + }, + { + "not": { + "required": [ + "authorizationUrl" + ] + } } ] } @@ -99,7 +101,5 @@ "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/2.1.0/specificationExtension.json" } - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.1.0/oauth2Flows.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.1.0/oauth2Scopes.json b/definitions/2.1.0/oauth2Scopes.json index da8e6e18..2be8f0f5 100644 --- a/definitions/2.1.0/oauth2Scopes.json +++ b/definitions/2.1.0/oauth2Scopes.json @@ -1,8 +1,8 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.1.0/oauth2Scopes.json", "type": "object", "additionalProperties": { "type": "string" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.1.0/oauth2Scopes.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.1.0/openIdConnect.json b/definitions/2.1.0/openIdConnect.json index 623bb8f0..7808c235 100644 --- a/definitions/2.1.0/openIdConnect.json +++ b/definitions/2.1.0/openIdConnect.json @@ -1,19 +1,21 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.1.0/openIdConnect.json", "type": "object", "required": [ "type", "openIdConnectUrl" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "openIdConnect" ] }, - "description": { - "type": "string" - }, "openIdConnectUrl": { "type": "string", "format": "uri" @@ -24,7 +26,5 @@ "$ref": "http://asyncapi.com/definitions/2.1.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.1.0/openIdConnect.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.1.0/openapiSchema_3_0.json b/definitions/2.1.0/openapiSchema_3_0.json index d50f113a..0c2c5536 100644 --- a/definitions/2.1.0/openapiSchema_3_0.json +++ b/definitions/2.1.0/openapiSchema_3_0.json @@ -2,154 +2,26 @@ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "http://asyncapi.com/definitions/2.1.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 + "description": { + "type": "string" }, - "minProperties": { - "type": "integer", - "minimum": 0, - "default": 0 + "deprecated": { + "default": false, + "type": "boolean" }, - "required": { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "uniqueItems": true + "readOnly": { + "default": false, + "type": "boolean" }, - "enum": { - "type": "array", - "items": true, - "minItems": 1, - "uniqueItems": false + "writeOnly": { + "default": false, + "type": "boolean" }, + "default": true, "type": { "type": "string", "enum": [ @@ -161,15 +33,11 @@ "string" ] }, - "not": { - "oneOf": [ - { - "$ref": "#" - }, - { - "$ref": "#/definitions/Reference" - } - ] + "enum": { + "type": "array", + "minItems": 1, + "uniqueItems": false, + "items": true }, "allOf": { "type": "array", @@ -184,7 +52,7 @@ ] } }, - "oneOf": { + "anyOf": { "type": "array", "items": { "oneOf": [ @@ -197,7 +65,7 @@ ] } }, - "anyOf": { + "oneOf": { "type": "array", "items": { "oneOf": [ @@ -210,6 +78,63 @@ ] } }, + "not": { + "oneOf": [ + { + "$ref": "#" + }, + { + "$ref": "#/definitions/Reference" + } + ] + }, + "exclusiveMaximum": { + "default": false, + "type": "boolean" + }, + "maximum": { + "type": "number" + }, + "exclusiveMinimum": { + "default": false, + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "multipleOf": { + "type": "number", + "exclusiveMinimum": 0 + }, + "pattern": { + "type": "string", + "format": "regex" + }, + "format": { + "type": "string" + }, + "maxLength": { + "type": "integer", + "minimum": 0 + }, + "minLength": { + "default": 0, + "type": "integer", + "minimum": 0 + }, + "maxItems": { + "type": "integer", + "minimum": 0 + }, + "minItems": { + "default": 0, + "type": "integer", + "minimum": 0 + }, + "uniqueItems": { + "default": false, + "type": "boolean" + }, "items": { "oneOf": [ { @@ -220,6 +145,23 @@ } ] }, + "required": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "maxProperties": { + "type": "integer", + "minimum": 0 + }, + "minProperties": { + "default": 0, + "type": "integer", + "minimum": 0 + }, "properties": { "type": "object", "additionalProperties": { @@ -234,6 +176,7 @@ } }, "additionalProperties": { + "default": true, "oneOf": [ { "$ref": "#" @@ -244,38 +187,18 @@ { "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 + "nullable": { + "default": false, + "type": "boolean" }, "xml": { "$ref": "#/definitions/XML" @@ -284,5 +207,82 @@ "patternProperties": { "^x-": true }, - "additionalProperties": false -} \ No newline at end of file + "additionalProperties": false, + "definitions": { + "Discriminator": { + "type": "object", + "required": [ + "propertyName" + ], + "properties": { + "mapping": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "propertyName": { + "type": "string" + } + } + }, + "ExternalDocumentation": { + "type": "object", + "required": [ + "url" + ], + "properties": { + "description": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri-reference" + } + }, + "patternProperties": { + "^x-": {} + }, + "additionalProperties": false + }, + "Reference": { + "type": "object", + "required": [ + "$ref" + ], + "patternProperties": { + "^\\$ref$": { + "type": "string", + "format": "uri-reference" + } + } + }, + "XML": { + "type": "object", + "properties": { + "attribute": { + "default": false, + "type": "boolean" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string", + "format": "uri" + }, + "prefix": { + "type": "string" + }, + "wrapped": { + "default": false, + "type": "boolean" + } + }, + "patternProperties": { + "^x-": {} + }, + "additionalProperties": false + } + } +} diff --git a/definitions/2.1.0/operation.json b/definitions/2.1.0/operation.json index 6bfc4864..21d2493e 100644 --- a/definitions/2.1.0/operation.json +++ b/definitions/2.1.0/operation.json @@ -1,12 +1,33 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.1.0/operation.json", "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.1.0/specificationExtension.json" - } - }, "properties": { + "description": { + "type": "string" + }, + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.1.0/bindingsObject.json" + }, + "externalDocs": { + "$ref": "http://asyncapi.com/definitions/2.1.0/externalDocs.json" + }, + "message": { + "$ref": "http://asyncapi.com/definitions/2.1.0/message.json" + }, + "operationId": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "tags": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "http://asyncapi.com/definitions/2.1.0/tag.json" + } + }, "traits": { "type": "array", "items": { @@ -19,33 +40,12 @@ } ] } - }, - "summary": { - "type": "string" - }, - "description": { - "type": "string" - }, - "tags": { - "type": "array", - "items": { - "$ref": "http://asyncapi.com/definitions/2.1.0/tag.json" - }, - "uniqueItems": true - }, - "externalDocs": { - "$ref": "http://asyncapi.com/definitions/2.1.0/externalDocs.json" - }, - "operationId": { - "type": "string" - }, - "bindings": { - "$ref": "http://asyncapi.com/definitions/2.1.0/bindingsObject.json" - }, - "message": { - "$ref": "http://asyncapi.com/definitions/2.1.0/message.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.1.0/operation.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.1.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.1.0/operationTrait.json b/definitions/2.1.0/operationTrait.json index 76d50e50..ebb99402 100644 --- a/definitions/2.1.0/operationTrait.json +++ b/definitions/2.1.0/operationTrait.json @@ -1,24 +1,13 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.1.0/operationTrait.json", "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.1.0/specificationExtension.json" - } - }, "properties": { - "summary": { - "type": "string" - }, "description": { "type": "string" }, - "tags": { - "type": "array", - "items": { - "$ref": "http://asyncapi.com/definitions/2.1.0/tag.json" - }, - "uniqueItems": true + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.1.0/bindingsObject.json" }, "externalDocs": { "$ref": "http://asyncapi.com/definitions/2.1.0/externalDocs.json" @@ -26,10 +15,21 @@ "operationId": { "type": "string" }, - "bindings": { - "$ref": "http://asyncapi.com/definitions/2.1.0/bindingsObject.json" + "summary": { + "type": "string" + }, + "tags": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "http://asyncapi.com/definitions/2.1.0/tag.json" + } } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.1.0/operationTrait.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.1.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.1.0/parameter.json b/definitions/2.1.0/parameter.json index 959c1873..da6b54e9 100644 --- a/definitions/2.1.0/parameter.json +++ b/definitions/2.1.0/parameter.json @@ -1,27 +1,27 @@ { - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.1.0/specificationExtension.json" - } - }, + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.1.0/parameter.json", "properties": { "description": { - "type": "string", - "description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed." + "description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed.", + "type": "string" }, - "schema": { - "$ref": "http://asyncapi.com/definitions/2.1.0/schema.json" + "$ref": { + "$ref": "http://asyncapi.com/definitions/2.1.0/ReferenceObject.json" }, "location": { - "type": "string", "description": "A runtime expression that specifies the location of the parameter value", + "type": "string", "pattern": "^\\$message\\.(header|payload)#(\\/(([^\\/~])|(~[01]))*)*" }, - "$ref": { - "$ref": "http://asyncapi.com/definitions/2.1.0/ReferenceObject.json" + "schema": { + "$ref": "http://asyncapi.com/definitions/2.1.0/schema.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.1.0/parameter.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.1.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.1.0/parameters.json b/definitions/2.1.0/parameters.json index f70fa547..76d9c948 100644 --- a/definitions/2.1.0/parameters.json +++ b/definitions/2.1.0/parameters.json @@ -1,4 +1,7 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.1.0/parameters.json", + "description": "JSON objects describing re-usable channel parameters.", "type": "object", "additionalProperties": { "oneOf": [ @@ -9,8 +12,5 @@ "$ref": "http://asyncapi.com/definitions/2.1.0/parameter.json" } ] - }, - "description": "JSON objects describing re-usable channel parameters.", - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.1.0/parameters.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.1.0/schema.json b/definitions/2.1.0/schema.json index 7806d896..fcf55bac 100644 --- a/definitions/2.1.0/schema.json +++ b/definitions/2.1.0/schema.json @@ -1,40 +1,15 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.1.0/schema.json", "allOf": [ { "$ref": "http://json-schema.org/draft-07/schema#" }, { - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.1.0/specificationExtension.json" - } - }, "properties": { - "additionalProperties": { - "anyOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.1.0/schema.json" - }, - { - "type": "boolean" - } - ], - "default": {} - }, - "items": { - "anyOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.1.0/schema.json" - }, - { - "type": "array", - "minItems": 1, - "items": { - "$ref": "http://asyncapi.com/definitions/2.1.0/schema.json" - } - } - ], - "default": {} + "deprecated": { + "default": false, + "type": "boolean" }, "allOf": { "type": "array", @@ -43,14 +18,14 @@ "$ref": "http://asyncapi.com/definitions/2.1.0/schema.json" } }, - "oneOf": { + "anyOf": { "type": "array", "minItems": 1, "items": { "$ref": "http://asyncapi.com/definitions/2.1.0/schema.json" } }, - "anyOf": { + "oneOf": { "type": "array", "minItems": 1, "items": { @@ -60,39 +35,64 @@ "not": { "$ref": "http://asyncapi.com/definitions/2.1.0/schema.json" }, + "contains": { + "$ref": "http://asyncapi.com/definitions/2.1.0/schema.json" + }, + "items": { + "default": {}, + "anyOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.1.0/schema.json" + }, + { + "type": "array", + "minItems": 1, + "items": { + "$ref": "http://asyncapi.com/definitions/2.1.0/schema.json" + } + } + ] + }, + "propertyNames": { + "$ref": "http://asyncapi.com/definitions/2.1.0/schema.json" + }, "properties": { + "default": {}, "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.1.0/schema.json" - }, - "default": {} + } }, "patternProperties": { + "default": {}, "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.1.0/schema.json" - }, - "default": {} - }, - "propertyNames": { - "$ref": "http://asyncapi.com/definitions/2.1.0/schema.json" + } }, - "contains": { - "$ref": "http://asyncapi.com/definitions/2.1.0/schema.json" + "additionalProperties": { + "default": {}, + "anyOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.1.0/schema.json" + }, + { + "type": "boolean" + } + ] }, "discriminator": { "type": "string" }, "externalDocs": { "$ref": "http://asyncapi.com/definitions/2.1.0/externalDocs.json" - }, - "deprecated": { - "type": "boolean", - "default": false + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.1.0/specificationExtension.json" } } } - ], - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.1.0/schema.json" -} \ No newline at end of file + ] +} diff --git a/definitions/2.1.0/schemas.json b/definitions/2.1.0/schemas.json index 0ad04b96..e5c9ae60 100644 --- a/definitions/2.1.0/schemas.json +++ b/definitions/2.1.0/schemas.json @@ -1,9 +1,9 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.1.0/schemas.json", + "description": "JSON objects describing schemas the API uses.", "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.1.0/schema.json" - }, - "description": "JSON objects describing schemas the API uses.", - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.1.0/schemas.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.1.0/server.json b/definitions/2.1.0/server.json index d9375030..895b36d4 100644 --- a/definitions/2.1.0/server.json +++ b/definitions/2.1.0/server.json @@ -1,43 +1,43 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.1.0/server.json", "description": "An object representing a Server.", + "type": "object", "required": [ "url", "protocol" ], - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.1.0/specificationExtension.json" - } - }, "properties": { - "url": { - "type": "string" - }, "description": { "type": "string" }, + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.1.0/bindingsObject.json" + }, "protocol": { - "type": "string", - "description": "The transfer protocol." + "description": "The transfer protocol.", + "type": "string" }, "protocolVersion": { "type": "string" }, - "variables": { - "$ref": "http://asyncapi.com/definitions/2.1.0/serverVariables.json" - }, "security": { "type": "array", "items": { "$ref": "http://asyncapi.com/definitions/2.1.0/SecurityRequirement.json" } }, - "bindings": { - "$ref": "http://asyncapi.com/definitions/2.1.0/bindingsObject.json" + "url": { + "type": "string" + }, + "variables": { + "$ref": "http://asyncapi.com/definitions/2.1.0/serverVariables.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.1.0/server.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.1.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.1.0/serverVariable.json b/definitions/2.1.0/serverVariable.json index c1832de1..fcdf670f 100644 --- a/definitions/2.1.0/serverVariable.json +++ b/definitions/2.1.0/serverVariable.json @@ -1,33 +1,33 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.1.0/serverVariable.json", "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.1.0/specificationExtension.json" - } - }, + "type": "object", "properties": { - "enum": { + "description": { + "type": "string" + }, + "examples": { "type": "array", "items": { "type": "string" - }, - "uniqueItems": true + } }, "default": { "type": "string" }, - "description": { - "type": "string" - }, - "examples": { + "enum": { "type": "array", + "uniqueItems": true, "items": { "type": "string" } } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.1.0/serverVariable.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.1.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.1.0/serverVariables.json b/definitions/2.1.0/serverVariables.json index 3f8ae5f9..816ff79b 100644 --- a/definitions/2.1.0/serverVariables.json +++ b/definitions/2.1.0/serverVariables.json @@ -1,8 +1,8 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.1.0/serverVariables.json", "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.1.0/serverVariable.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.1.0/serverVariables.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.1.0/specificationExtension.json b/definitions/2.1.0/specificationExtension.json index fcca86ed..3372edcb 100644 --- a/definitions/2.1.0/specificationExtension.json +++ b/definitions/2.1.0/specificationExtension.json @@ -1,7 +1,7 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.1.0/specificationExtension.json", "description": "Any property starting with x- is valid.", - "additionalProperties": true, "additionalItems": true, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.1.0/specificationExtension.json" -} \ No newline at end of file + "additionalProperties": true +} diff --git a/definitions/2.1.0/symmetricEncryption.json b/definitions/2.1.0/symmetricEncryption.json index afc5b1a8..fbc0f674 100644 --- a/definitions/2.1.0/symmetricEncryption.json +++ b/definitions/2.1.0/symmetricEncryption.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.1.0/symmetricEncryption.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "symmetricEncryption" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,7 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.1.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.1.0/symmetricEncryption.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.1.0/tag.json b/definitions/2.1.0/tag.json index e75b8e7c..84230b85 100644 --- a/definitions/2.1.0/tag.json +++ b/definitions/2.1.0/tag.json @@ -1,18 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.1.0/tag.json", "type": "object", - "additionalProperties": false, "required": [ "name" ], "properties": { - "name": { - "type": "string" - }, "description": { "type": "string" }, "externalDocs": { "$ref": "http://asyncapi.com/definitions/2.1.0/externalDocs.json" + }, + "name": { + "type": "string" } }, "patternProperties": { @@ -20,6 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.1.0/specificationExtension.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.1.0/tag.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.1.0/userPassword.json b/definitions/2.1.0/userPassword.json index 9f7fe4c0..121b9067 100644 --- a/definitions/2.1.0/userPassword.json +++ b/definitions/2.1.0/userPassword.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.1.0/userPassword.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "userPassword" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,7 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.1.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.1.0/userPassword.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.2.0/APIKeyHTTPSecurityScheme.json b/definitions/2.2.0/APIKeyHTTPSecurityScheme.json index 792ff857..16faf863 100644 --- a/definitions/2.2.0/APIKeyHTTPSecurityScheme.json +++ b/definitions/2.2.0/APIKeyHTTPSecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.2.0/APIKeyHTTPSecurityScheme.json", "type": "object", "required": [ "type", @@ -6,15 +8,15 @@ "in" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "httpApiKey" ] }, - "name": { - "type": "string" - }, "in": { "type": "string", "enum": [ @@ -23,7 +25,7 @@ "cookie" ] }, - "description": { + "name": { "type": "string" } }, @@ -32,7 +34,5 @@ "$ref": "http://asyncapi.com/definitions/2.2.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/APIKeyHTTPSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.2.0/BearerHTTPSecurityScheme.json b/definitions/2.2.0/BearerHTTPSecurityScheme.json index ef1f487a..b0c05ae4 100644 --- a/definitions/2.2.0/BearerHTTPSecurityScheme.json +++ b/definitions/2.2.0/BearerHTTPSecurityScheme.json @@ -1,27 +1,29 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.2.0/BearerHTTPSecurityScheme.json", "type": "object", "required": [ "type", "scheme" ], "properties": { - "scheme": { + "description": { + "type": "string" + }, + "type": { "type": "string", "enum": [ - "bearer" + "http" ] }, "bearerFormat": { "type": "string" }, - "type": { + "scheme": { "type": "string", "enum": [ - "http" + "bearer" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -29,7 +31,5 @@ "$ref": "http://asyncapi.com/definitions/2.2.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/BearerHTTPSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.2.0/HTTPSecurityScheme.json b/definitions/2.2.0/HTTPSecurityScheme.json index cfe23a41..e625c423 100644 --- a/definitions/2.2.0/HTTPSecurityScheme.json +++ b/definitions/2.2.0/HTTPSecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.2.0/HTTPSecurityScheme.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/2.2.0/NonBearerHTTPSecurityScheme.json" @@ -9,7 +11,5 @@ { "$ref": "http://asyncapi.com/definitions/2.2.0/APIKeyHTTPSecurityScheme.json" } - ], - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/HTTPSecurityScheme.json" -} \ No newline at end of file + ] +} diff --git a/definitions/2.2.0/NonBearerHTTPSecurityScheme.json b/definitions/2.2.0/NonBearerHTTPSecurityScheme.json index d95ea3ac..4ce3aaf8 100644 --- a/definitions/2.2.0/NonBearerHTTPSecurityScheme.json +++ b/definitions/2.2.0/NonBearerHTTPSecurityScheme.json @@ -1,4 +1,7 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.2.0/NonBearerHTTPSecurityScheme.json", + "type": "object", "not": { "type": "object", "properties": { @@ -10,15 +13,11 @@ } } }, - "type": "object", "required": [ "scheme", "type" ], "properties": { - "scheme": { - "type": "string" - }, "description": { "type": "string" }, @@ -27,6 +26,9 @@ "enum": [ "http" ] + }, + "scheme": { + "type": "string" } }, "patternProperties": { @@ -34,7 +36,5 @@ "$ref": "http://asyncapi.com/definitions/2.2.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/NonBearerHTTPSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.2.0/Reference.json b/definitions/2.2.0/Reference.json index 550875fc..beed4cd7 100644 --- a/definitions/2.2.0/Reference.json +++ b/definitions/2.2.0/Reference.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.2.0/Reference.json", "type": "object", "required": [ "$ref" @@ -7,7 +9,5 @@ "$ref": { "$ref": "http://asyncapi.com/definitions/2.2.0/ReferenceObject.json" } - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/Reference.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.2.0/ReferenceObject.json b/definitions/2.2.0/ReferenceObject.json index 54ca2529..ff776dee 100644 --- a/definitions/2.2.0/ReferenceObject.json +++ b/definitions/2.2.0/ReferenceObject.json @@ -1,6 +1,6 @@ { - "type": "string", - "format": "uri-reference", "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/ReferenceObject.json" -} \ No newline at end of file + "$id": "http://asyncapi.com/definitions/2.2.0/ReferenceObject.json", + "type": "string", + "format": "uri-reference" +} diff --git a/definitions/2.2.0/SaslGssapiSecurityScheme.json b/definitions/2.2.0/SaslGssapiSecurityScheme.json index 334a54a1..7caaca32 100644 --- a/definitions/2.2.0/SaslGssapiSecurityScheme.json +++ b/definitions/2.2.0/SaslGssapiSecurityScheme.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.2.0/SaslGssapiSecurityScheme.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "gssapi" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,7 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.2.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/SaslGssapiSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.2.0/SaslPlainSecurityScheme.json b/definitions/2.2.0/SaslPlainSecurityScheme.json index d837f4e7..ee78295a 100644 --- a/definitions/2.2.0/SaslPlainSecurityScheme.json +++ b/definitions/2.2.0/SaslPlainSecurityScheme.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.2.0/SaslPlainSecurityScheme.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "plain" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,7 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.2.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/SaslPlainSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.2.0/SaslScramSecurityScheme.json b/definitions/2.2.0/SaslScramSecurityScheme.json index e8dc5b6b..2f6eb2af 100644 --- a/definitions/2.2.0/SaslScramSecurityScheme.json +++ b/definitions/2.2.0/SaslScramSecurityScheme.json @@ -1,18 +1,20 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.2.0/SaslScramSecurityScheme.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "scramSha256", "scramSha512" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -20,7 +22,5 @@ "$ref": "http://asyncapi.com/definitions/2.2.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/SaslScramSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.2.0/SaslSecurityScheme.json b/definitions/2.2.0/SaslSecurityScheme.json index 839fbbab..c22fd988 100644 --- a/definitions/2.2.0/SaslSecurityScheme.json +++ b/definitions/2.2.0/SaslSecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.2.0/SaslSecurityScheme.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/2.2.0/SaslPlainSecurityScheme.json" @@ -9,7 +11,5 @@ { "$ref": "http://asyncapi.com/definitions/2.2.0/SaslGssapiSecurityScheme.json" } - ], - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/SaslSecurityScheme.json" -} \ No newline at end of file + ] +} diff --git a/definitions/2.2.0/SecurityRequirement.json b/definitions/2.2.0/SecurityRequirement.json index 84f0db91..19f43a94 100644 --- a/definitions/2.2.0/SecurityRequirement.json +++ b/definitions/2.2.0/SecurityRequirement.json @@ -1,12 +1,12 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.2.0/SecurityRequirement.json", "type": "object", "additionalProperties": { "type": "array", + "uniqueItems": true, "items": { "type": "string" - }, - "uniqueItems": true - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/SecurityRequirement.json" -} \ No newline at end of file + } + } +} diff --git a/definitions/2.2.0/SecurityScheme.json b/definitions/2.2.0/SecurityScheme.json index 06be60c3..544ca481 100644 --- a/definitions/2.2.0/SecurityScheme.json +++ b/definitions/2.2.0/SecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.2.0/SecurityScheme.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/2.2.0/userPassword.json" @@ -27,7 +29,5 @@ { "$ref": "http://asyncapi.com/definitions/2.2.0/SaslSecurityScheme.json" } - ], - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/SecurityScheme.json" -} \ No newline at end of file + ] +} diff --git a/definitions/2.2.0/X509.json b/definitions/2.2.0/X509.json index 73c7ed3d..11059aff 100644 --- a/definitions/2.2.0/X509.json +++ b/definitions/2.2.0/X509.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.2.0/X509.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "X509" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,7 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.2.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/X509.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.2.0/apiKey.json b/definitions/2.2.0/apiKey.json index 27c32570..27118257 100644 --- a/definitions/2.2.0/apiKey.json +++ b/definitions/2.2.0/apiKey.json @@ -1,10 +1,15 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.2.0/apiKey.json", "type": "object", "required": [ "type", "in" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ @@ -17,9 +22,6 @@ "user", "password" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -27,7 +29,5 @@ "$ref": "http://asyncapi.com/definitions/2.2.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/apiKey.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.2.0/asymmetricEncryption.json b/definitions/2.2.0/asymmetricEncryption.json index c00df8bc..2ab64584 100644 --- a/definitions/2.2.0/asymmetricEncryption.json +++ b/definitions/2.2.0/asymmetricEncryption.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.2.0/asymmetricEncryption.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "asymmetricEncryption" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,7 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.2.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/asymmetricEncryption.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.2.0/asyncapi.json b/definitions/2.2.0/asyncapi.json index 827f14ec..d42de44b 100644 --- a/definitions/2.2.0/asyncapi.json +++ b/definitions/2.2.0/asyncapi.json @@ -1,31 +1,37 @@ { - "title": "AsyncAPI 2.2.0 schema.", "$schema": "http://json-schema.org/draft-07/schema#", "$id": "http://asyncapi.com/definitions/2.2.0/asyncapi.json", + "title": "AsyncAPI 2.2.0 schema.", "type": "object", "required": [ "asyncapi", "info", "channels" ], - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.2.0/specificationExtension.json" - } - }, "properties": { + "id": { + "description": "A unique id representing the application.", + "type": "string", + "format": "uri" + }, "asyncapi": { + "description": "The AsyncAPI specification version of this document.", "type": "string", "enum": [ "2.2.0" - ], - "description": "The AsyncAPI specification version of this document." + ] }, - "id": { - "type": "string", - "description": "A unique id representing the application.", - "format": "uri" + "channels": { + "$ref": "http://asyncapi.com/definitions/2.2.0/channels.json" + }, + "components": { + "$ref": "http://asyncapi.com/definitions/2.2.0/components.json" + }, + "defaultContentType": { + "type": "string" + }, + "externalDocs": { + "$ref": "http://asyncapi.com/definitions/2.2.0/externalDocs.json" }, "info": { "$ref": "http://asyncapi.com/definitions/2.2.0/info.json" @@ -36,24 +42,18 @@ "$ref": "http://asyncapi.com/definitions/2.2.0/server.json" } }, - "defaultContentType": { - "type": "string" - }, - "channels": { - "$ref": "http://asyncapi.com/definitions/2.2.0/channels.json" - }, - "components": { - "$ref": "http://asyncapi.com/definitions/2.2.0/components.json" - }, "tags": { "type": "array", + "uniqueItems": true, "items": { "$ref": "http://asyncapi.com/definitions/2.2.0/tag.json" - }, - "uniqueItems": true - }, - "externalDocs": { - "$ref": "http://asyncapi.com/definitions/2.2.0/externalDocs.json" + } } - } -} \ No newline at end of file + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.2.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.2.0/avroSchema_v1.json b/definitions/2.2.0/avroSchema_v1.json index f5ec8a12..affbfe33 100644 --- a/definitions/2.2.0/avroSchema_v1.json +++ b/definitions/2.2.0/avroSchema_v1.json @@ -1,220 +1,131 @@ { "$schema": "http://json-schema.org/draft-07/schema#", "$id": "http://asyncapi.com/definitions/2.2.0/avroSchema_v1.json", + "title": "Avro Schema Definition", + "description": "Json-Schema definition for Avro AVSC files.", + "oneOf": [ + { + "$ref": "#/definitions/avroSchema" + } + ], "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.", + "avroArray": { + "title": "Array", + "description": "An array", "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", + "type", + "items" + ], "properties": { - "name": { - "$ref": "#/definitions/name" - }, "type": { - "$ref": "#/definitions/types" - }, - "doc": { - "type": "string" + "type": "string", + "const": "array" }, - "default": true, - "order": { - "enum": [ - "ascending", - "descending", - "ignore" - ] + "items": { + "$ref": "#/definitions/types" }, "aliases": { "type": "array", "items": { "$ref": "#/definitions/name" } - } - }, - "required": [ - "name", - "type" - ] - }, - "avroRecord": { - "title": "Record", - "description": "A Record", - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "record" + }, + "doc": { + "type": "string" }, "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", + "required": [ + "type", + "name", + "symbols" + ], "properties": { "type": { "type": "string", "const": "enum" }, + "aliases": { + "type": "array", + "items": { + "$ref": "#/definitions/name" + } + }, + "doc": { + "type": "string" + }, "name": { "$ref": "#/definitions/name" }, "namespace": { "$ref": "#/definitions/namespace" }, - "doc": { - "type": "string" - }, - "aliases": { + "symbols": { "type": "array", "items": { "$ref": "#/definitions/name" } + } + } + }, + "avroField": { + "title": "Field", + "description": "A field within a Record", + "type": "object", + "required": [ + "name", + "type" + ], + "properties": { + "default": true, + "type": { + "$ref": "#/definitions/types" }, - "symbols": { + "aliases": { "type": "array", "items": { "$ref": "#/definitions/name" } + }, + "doc": { + "type": "string" + }, + "name": { + "$ref": "#/definitions/name" + }, + "order": { + "enum": [ + "ascending", + "descending", + "ignore" + ] } - }, + } + }, + "avroFixed": { + "title": "Fixed", + "description": "A fixed sized array of bytes", + "type": "object", "required": [ "type", "name", - "symbols" - ] - }, - "avroArray": { - "title": "Array", - "description": "An array", - "type": "object", + "size" + ], "properties": { "type": { "type": "string", - "const": "array" - }, - "name": { - "$ref": "#/definitions/name" - }, - "namespace": { - "$ref": "#/definitions/namespace" - }, - "doc": { - "type": "string" + "const": "fixed" }, "aliases": { "type": "array", @@ -222,82 +133,117 @@ "$ref": "#/definitions/name" } }, - "items": { - "$ref": "#/definitions/types" + "doc": { + "type": "string" + }, + "name": { + "$ref": "#/definitions/name" + }, + "namespace": { + "$ref": "#/definitions/namespace" + }, + "size": { + "type": "number" } - }, - "required": [ - "type", - "items" - ] + } }, "avroMap": { "title": "Map", "description": "A map of values", "type": "object", + "required": [ + "type", + "values" + ], "properties": { "type": { "type": "string", "const": "map" }, - "name": { - "$ref": "#/definitions/name" - }, - "namespace": { - "$ref": "#/definitions/namespace" - }, - "doc": { - "type": "string" - }, "aliases": { "type": "array", "items": { "$ref": "#/definitions/name" } }, + "doc": { + "type": "string" + }, + "name": { + "$ref": "#/definitions/name" + }, + "namespace": { + "$ref": "#/definitions/namespace" + }, "values": { "$ref": "#/definitions/types" } - }, - "required": [ - "type", - "values" - ] + } }, - "avroFixed": { - "title": "Fixed", - "description": "A fixed sized array of bytes", + "avroRecord": { + "title": "Record", + "description": "A Record", "type": "object", + "required": [ + "type", + "name", + "fields" + ], "properties": { "type": { "type": "string", - "const": "fixed" - }, - "name": { - "$ref": "#/definitions/name" + "const": "record" }, - "namespace": { - "$ref": "#/definitions/namespace" + "aliases": { + "type": "array", + "items": { + "$ref": "#/definitions/name" + } }, "doc": { "type": "string" }, - "aliases": { + "fields": { "type": "array", "items": { - "$ref": "#/definitions/name" + "$ref": "#/definitions/avroField" } }, - "size": { - "type": "number" + "name": { + "$ref": "#/definitions/name" + }, + "namespace": { + "$ref": "#/definitions/namespace" + } + } + }, + "avroSchema": { + "title": "Avro Schema", + "description": "Root Schema", + "oneOf": [ + { + "$ref": "#/definitions/types" } - }, - "required": [ - "type", - "name", - "size" ] }, + "avroUnion": { + "title": "Union", + "description": "A Union of types", + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/definitions/avroSchema" + } + }, + "customTypeReference": { + "title": "Custom Type", + "description": "Reference to a ComplexType", + "type": "string", + "not": { + "$ref": "#/definitions/primitiveType" + }, + "pattern": "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$" + }, "name": { "type": "string", "pattern": "^[A-Za-z_][A-Za-z0-9_]*$" @@ -305,13 +251,67 @@ "namespace": { "type": "string", "pattern": "^([A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*)*$" + }, + "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", + "required": [ + "type" + ], + "properties": { + "type": { + "$ref": "#/definitions/primitiveType" + } + } + }, + "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" + } + ] } - }, - "description": "Json-Schema definition for Avro AVSC files.", - "oneOf": [ - { - "$ref": "#/definitions/avroSchema" - } - ], - "title": "Avro Schema Definition" -} \ No newline at end of file + } +} diff --git a/definitions/2.2.0/bindingsObject.json b/definitions/2.2.0/bindingsObject.json index 16868e37..9061af06 100644 --- a/definitions/2.2.0/bindingsObject.json +++ b/definitions/2.2.0/bindingsObject.json @@ -1,23 +1,23 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.2.0/bindingsObject.json", "type": "object", - "additionalProperties": true, "properties": { - "http": {}, - "ws": {}, "amqp": {}, "amqp1": {}, + "anypointmq": {}, + "http": {}, + "ibmmq": {}, + "jms": {}, + "kafka": {}, "mqtt": {}, "mqtt5": {}, - "kafka": {}, - "anypointmq": {}, "nats": {}, - "jms": {}, + "redis": {}, "sns": {}, "sqs": {}, "stomp": {}, - "redis": {}, - "ibmmq": {} + "ws": {} }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/bindingsObject.json" -} \ No newline at end of file + "additionalProperties": true +} diff --git a/definitions/2.2.0/channelItem.json b/definitions/2.2.0/channelItem.json index 30bb6b06..b6d82cfd 100644 --- a/definitions/2.2.0/channelItem.json +++ b/definitions/2.2.0/channelItem.json @@ -1,44 +1,44 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.2.0/channelItem.json", "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.2.0/specificationExtension.json" - } - }, "properties": { + "description": { + "description": "A description of the channel.", + "type": "string" + }, + "deprecated": { + "default": false, + "type": "boolean" + }, "$ref": { "$ref": "http://asyncapi.com/definitions/2.2.0/ReferenceObject.json" }, + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.2.0/bindingsObject.json" + }, "parameters": { "$ref": "http://asyncapi.com/definitions/2.2.0/parameters.json" }, - "description": { - "type": "string", - "description": "A description of the channel." + "publish": { + "$ref": "http://asyncapi.com/definitions/2.2.0/operation.json" }, "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.", + "type": "array", + "uniqueItems": true, "items": { "type": "string" - }, - "uniqueItems": true - }, - "publish": { - "$ref": "http://asyncapi.com/definitions/2.2.0/operation.json" + } }, "subscribe": { "$ref": "http://asyncapi.com/definitions/2.2.0/operation.json" - }, - "deprecated": { - "type": "boolean", - "default": false - }, - "bindings": { - "$ref": "http://asyncapi.com/definitions/2.2.0/bindingsObject.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/channelItem.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.2.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.2.0/channels.json b/definitions/2.2.0/channels.json index bd2ab181..93a8ddad 100644 --- a/definitions/2.2.0/channels.json +++ b/definitions/2.2.0/channels.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.2.0/channels.json", "type": "object", "propertyNames": { "type": "string", @@ -7,7 +9,5 @@ }, "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.2.0/channelItem.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/channels.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.2.0/components.json b/definitions/2.2.0/components.json index aff38c99..41047f7d 100644 --- a/definitions/2.2.0/components.json +++ b/definitions/2.2.0/components.json @@ -1,37 +1,15 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.2.0/components.json", "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.2.0/specificationExtension.json" - } - }, + "type": "object", "properties": { - "schemas": { - "$ref": "http://asyncapi.com/definitions/2.2.0/schemas.json" - }, - "messages": { - "$ref": "http://asyncapi.com/definitions/2.2.0/messages.json" - }, - "securitySchemes": { + "channelBindings": { "type": "object", - "patternProperties": { - "^[\\w\\d\\.\\-_]+$": { - "oneOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.2.0/Reference.json" - }, - { - "$ref": "http://asyncapi.com/definitions/2.2.0/SecurityScheme.json" - } - ] - } + "additionalProperties": { + "$ref": "http://asyncapi.com/definitions/2.2.0/bindingsObject.json" } }, - "parameters": { - "$ref": "http://asyncapi.com/definitions/2.2.0/parameters.json" - }, "correlationIds": { "type": "object", "patternProperties": { @@ -47,10 +25,10 @@ } } }, - "operationTraits": { + "messageBindings": { "type": "object", "additionalProperties": { - "$ref": "http://asyncapi.com/definitions/2.2.0/operationTrait.json" + "$ref": "http://asyncapi.com/definitions/2.2.0/bindingsObject.json" } }, "messageTraits": { @@ -59,31 +37,53 @@ "$ref": "http://asyncapi.com/definitions/2.2.0/messageTrait.json" } }, - "serverBindings": { + "messages": { + "$ref": "http://asyncapi.com/definitions/2.2.0/messages.json" + }, + "operationBindings": { "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.2.0/bindingsObject.json" } }, - "channelBindings": { + "operationTraits": { "type": "object", "additionalProperties": { - "$ref": "http://asyncapi.com/definitions/2.2.0/bindingsObject.json" + "$ref": "http://asyncapi.com/definitions/2.2.0/operationTrait.json" } }, - "operationBindings": { + "parameters": { + "$ref": "http://asyncapi.com/definitions/2.2.0/parameters.json" + }, + "schemas": { + "$ref": "http://asyncapi.com/definitions/2.2.0/schemas.json" + }, + "securitySchemes": { "type": "object", - "additionalProperties": { - "$ref": "http://asyncapi.com/definitions/2.2.0/bindingsObject.json" + "patternProperties": { + "^[\\w\\d\\.\\-_]+$": { + "oneOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.2.0/Reference.json" + }, + { + "$ref": "http://asyncapi.com/definitions/2.2.0/SecurityScheme.json" + } + ] + } } }, - "messageBindings": { + "serverBindings": { "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.2.0/bindingsObject.json" } } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/components.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.2.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.2.0/contact.json b/definitions/2.2.0/contact.json index bded944d..19c96f2a 100644 --- a/definitions/2.2.0/contact.json +++ b/definitions/2.2.0/contact.json @@ -1,21 +1,22 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.2.0/contact.json", "description": "Contact information for the owners of the API.", - "additionalProperties": false, + "type": "object", "properties": { - "name": { + "email": { + "description": "The email address of the contact person/organization.", "type": "string", - "description": "The identifying name of the contact person/organization." + "format": "email" + }, + "name": { + "description": "The identifying name of the contact person/organization.", + "type": "string" }, "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" + "format": "uri" } }, "patternProperties": { @@ -23,6 +24,5 @@ "$ref": "http://asyncapi.com/definitions/2.2.0/specificationExtension.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/contact.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.2.0/correlationId.json b/definitions/2.2.0/correlationId.json index 50394f45..2b6a6290 100644 --- a/definitions/2.2.0/correlationId.json +++ b/definitions/2.2.0/correlationId.json @@ -1,25 +1,25 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.2.0/correlationId.json", "type": "object", "required": [ "location" ], - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.2.0/specificationExtension.json" - } - }, "properties": { "description": { - "type": "string", - "description": "A optional description of the correlation ID. GitHub Flavored Markdown is allowed." + "description": "A optional description of the correlation ID. GitHub Flavored Markdown is allowed.", + "type": "string" }, "location": { - "type": "string", "description": "A runtime expression that specifies the location of the correlation ID", + "type": "string", "pattern": "^\\$message\\.(header|payload)#(\\/(([^\\/~])|(~[01]))*)*" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/correlationId.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.2.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.2.0/external.json b/definitions/2.2.0/external.json index 127175b4..b581515c 100644 --- a/definitions/2.2.0/external.json +++ b/definitions/2.2.0/external.json @@ -1,5 +1,5 @@ { - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/http://something.example.com/schemas/external.json", - "type": "string" - } \ No newline at end of file + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.2.0/http://something.example.com/schemas/external.json", + "type": "string" +} diff --git a/definitions/2.2.0/externalDocs.json b/definitions/2.2.0/externalDocs.json index ab5e503e..3bd090c5 100644 --- a/definitions/2.2.0/externalDocs.json +++ b/definitions/2.2.0/externalDocs.json @@ -1,7 +1,8 @@ { - "type": "object", - "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.2.0/externalDocs.json", "description": "information about external documentation", + "type": "object", "required": [ "url" ], @@ -19,6 +20,5 @@ "$ref": "http://asyncapi.com/definitions/2.2.0/specificationExtension.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/externalDocs.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.2.0/info.json b/definitions/2.2.0/info.json index 49937aee..a4124115 100644 --- a/definitions/2.2.0/info.json +++ b/definitions/2.2.0/info.json @@ -1,41 +1,41 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.2.0/info.json", "description": "General information about the API.", + "type": "object", "required": [ "version", "title" ], - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.2.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": "A unique and precise title of the API.", + "type": "string" }, "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" + "description": "A longer description of the API. Should be different from the title. CommonMark is allowed.", + "type": "string" }, "contact": { "$ref": "http://asyncapi.com/definitions/2.2.0/contact.json" }, "license": { "$ref": "http://asyncapi.com/definitions/2.2.0/license.json" + }, + "termsOfService": { + "description": "A URL to the Terms of Service for the API. MUST be in the format of a URL.", + "type": "string", + "format": "uri" + }, + "version": { + "description": "A semantic version number of the API.", + "type": "string" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/info.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.2.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.2.0/license.json b/definitions/2.2.0/license.json index 82276487..cbf05e45 100644 --- a/definitions/2.2.0/license.json +++ b/definitions/2.2.0/license.json @@ -1,17 +1,18 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.2.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." + "description": "The name of the license type. It's encouraged to use an OSI compatible license.", + "type": "string" }, "url": { - "type": "string", "description": "The URL pointing to the license.", + "type": "string", "format": "uri" } }, @@ -20,6 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.2.0/specificationExtension.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/license.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.2.0/message.json b/definitions/2.2.0/message.json index 472a75da..89b0e275 100644 --- a/definitions/2.2.0/message.json +++ b/definitions/2.2.0/message.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.2.0/message.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/2.2.0/Reference.json" @@ -10,7 +12,6 @@ "required": [ "oneOf" ], - "additionalProperties": false, "properties": { "oneOf": { "type": "array", @@ -18,128 +19,11 @@ "$ref": "http://asyncapi.com/definitions/2.2.0/message.json" } } - } + }, + "additionalProperties": false }, { "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.2.0/specificationExtension.json" - } - }, - "properties": { - "schemaFormat": { - "type": "string" - }, - "contentType": { - "type": "string" - }, - "headers": { - "allOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.2.0/schema.json" - }, - { - "properties": { - "type": { - "const": "object" - } - } - } - ] - }, - "payload": {}, - "correlationId": { - "oneOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.2.0/Reference.json" - }, - { - "$ref": "http://asyncapi.com/definitions/2.2.0/correlationId.json" - } - ] - }, - "tags": { - "type": "array", - "items": { - "$ref": "http://asyncapi.com/definitions/2.2.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.2.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.2.0/bindingsObject.json" - }, - "traits": { - "type": "array", - "items": { - "oneOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.2.0/Reference.json" - }, - { - "$ref": "http://asyncapi.com/definitions/2.2.0/messageTrait.json" - } - ] - } - } - }, "allOf": [ { "if": { @@ -216,8 +100,8 @@ "properties": { "schemaFormat": { "enum": [ - "application/vnd.oai.openapi;version=3.0.0", - "application/vnd.oai.openapi+json;version=3.0.0", + "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" ] } @@ -254,11 +138,127 @@ } } } - ] + ], + "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": { + "type": "array", + "items": { + "type": "object", + "anyOf": [ + { + "required": [ + "payload" + ] + }, + { + "required": [ + "headers" + ] + } + ], + "properties": { + "headers": { + "type": "object" + }, + "name": { + "description": "Machine readable name of the message example.", + "type": "string" + }, + "payload": {}, + "summary": { + "description": "A brief summary of the message example.", + "type": "string" + } + }, + "additionalProperties": false + } + }, + "deprecated": { + "default": false, + "type": "boolean" + }, + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.2.0/bindingsObject.json" + }, + "contentType": { + "type": "string" + }, + "correlationId": { + "oneOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.2.0/Reference.json" + }, + { + "$ref": "http://asyncapi.com/definitions/2.2.0/correlationId.json" + } + ] + }, + "externalDocs": { + "$ref": "http://asyncapi.com/definitions/2.2.0/externalDocs.json" + }, + "headers": { + "allOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.2.0/schema.json" + }, + { + "properties": { + "type": { + "const": "object" + } + } + } + ] + }, + "name": { + "description": "Name of the message.", + "type": "string" + }, + "payload": {}, + "schemaFormat": { + "type": "string" + }, + "summary": { + "description": "A brief summary of the message.", + "type": "string" + }, + "tags": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "http://asyncapi.com/definitions/2.2.0/tag.json" + } + }, + "traits": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.2.0/Reference.json" + }, + { + "$ref": "http://asyncapi.com/definitions/2.2.0/messageTrait.json" + } + ] + } + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.2.0/specificationExtension.json" + } + }, + "additionalProperties": false } ] } - ], - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/message.json" -} \ No newline at end of file + ] +} diff --git a/definitions/2.2.0/messageTrait.json b/definitions/2.2.0/messageTrait.json index 847918e9..ed91f617 100644 --- a/definitions/2.2.0/messageTrait.json +++ b/definitions/2.2.0/messageTrait.json @@ -1,18 +1,45 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.2.0/messageTrait.json", "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.2.0/specificationExtension.json" - } - }, "properties": { - "schemaFormat": { + "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": { + "type": "array", + "items": { + "type": "object" + } + }, + "deprecated": { + "default": false, + "type": "boolean" + }, + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.2.0/bindingsObject.json" + }, "contentType": { "type": "string" }, + "correlationId": { + "oneOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.2.0/Reference.json" + }, + { + "$ref": "http://asyncapi.com/definitions/2.2.0/correlationId.json" + } + ] + }, + "externalDocs": { + "$ref": "http://asyncapi.com/definitions/2.2.0/externalDocs.json" + }, "headers": { "allOf": [ { @@ -27,56 +54,29 @@ } ] }, - "correlationId": { - "oneOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.2.0/Reference.json" - }, - { - "$ref": "http://asyncapi.com/definitions/2.2.0/correlationId.json" - } - ] - }, - "tags": { - "type": "array", - "items": { - "$ref": "http://asyncapi.com/definitions/2.2.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." + "description": "Name of the message.", + "type": "string" }, - "externalDocs": { - "$ref": "http://asyncapi.com/definitions/2.2.0/externalDocs.json" + "schemaFormat": { + "type": "string" }, - "deprecated": { - "type": "boolean", - "default": false + "summary": { + "description": "A brief summary of the message.", + "type": "string" }, - "examples": { + "tags": { "type": "array", + "uniqueItems": true, "items": { - "type": "object" + "$ref": "http://asyncapi.com/definitions/2.2.0/tag.json" } - }, - "bindings": { - "$ref": "http://asyncapi.com/definitions/2.2.0/bindingsObject.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/messageTrait.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.2.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.2.0/messages.json b/definitions/2.2.0/messages.json index 4b703be2..289212cf 100644 --- a/definitions/2.2.0/messages.json +++ b/definitions/2.2.0/messages.json @@ -1,9 +1,9 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.2.0/messages.json", + "description": "JSON objects describing the messages being consumed and produced by the API.", "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.2.0/message.json" - }, - "description": "JSON objects describing the messages being consumed and produced by the API.", - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/messages.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.2.0/oauth2Flow.json b/definitions/2.2.0/oauth2Flow.json index 70ab26f0..c9df445f 100644 --- a/definitions/2.2.0/oauth2Flow.json +++ b/definitions/2.2.0/oauth2Flow.json @@ -1,20 +1,22 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.2.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.2.0/oauth2Scopes.json" + }, + "tokenUrl": { + "type": "string", + "format": "uri" } }, "patternProperties": { @@ -22,7 +24,5 @@ "$ref": "http://asyncapi.com/definitions/2.2.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/oauth2Flow.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.2.0/oauth2Flows.json b/definitions/2.2.0/oauth2Flows.json index 06c6d0a9..4489f4ee 100644 --- a/definitions/2.2.0/oauth2Flows.json +++ b/definitions/2.2.0/oauth2Flows.json @@ -1,23 +1,25 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.2.0/oauth2Flows.json", "type": "object", "required": [ "type", "flows" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "oauth2" ] }, - "description": { - "type": "string" - }, "flows": { "type": "object", "properties": { - "implicit": { + "authorizationCode": { "allOf": [ { "$ref": "http://asyncapi.com/definitions/2.2.0/oauth2Flow.json" @@ -25,19 +27,13 @@ { "required": [ "authorizationUrl", + "tokenUrl", "scopes" ] - }, - { - "not": { - "required": [ - "tokenUrl" - ] - } } ] }, - "password": { + "clientCredentials": { "allOf": [ { "$ref": "http://asyncapi.com/definitions/2.2.0/oauth2Flow.json" @@ -57,37 +53,43 @@ } ] }, - "clientCredentials": { + "implicit": { "allOf": [ { "$ref": "http://asyncapi.com/definitions/2.2.0/oauth2Flow.json" }, { "required": [ - "tokenUrl", + "authorizationUrl", "scopes" ] }, { "not": { "required": [ - "authorizationUrl" + "tokenUrl" ] } } ] }, - "authorizationCode": { + "password": { "allOf": [ { "$ref": "http://asyncapi.com/definitions/2.2.0/oauth2Flow.json" }, { "required": [ - "authorizationUrl", "tokenUrl", "scopes" ] + }, + { + "not": { + "required": [ + "authorizationUrl" + ] + } } ] } @@ -99,7 +101,5 @@ "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/2.2.0/specificationExtension.json" } - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/oauth2Flows.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.2.0/oauth2Scopes.json b/definitions/2.2.0/oauth2Scopes.json index 36395da7..92c2ad09 100644 --- a/definitions/2.2.0/oauth2Scopes.json +++ b/definitions/2.2.0/oauth2Scopes.json @@ -1,8 +1,8 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.2.0/oauth2Scopes.json", "type": "object", "additionalProperties": { "type": "string" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/oauth2Scopes.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.2.0/openIdConnect.json b/definitions/2.2.0/openIdConnect.json index b015c8c5..2cf80e61 100644 --- a/definitions/2.2.0/openIdConnect.json +++ b/definitions/2.2.0/openIdConnect.json @@ -1,19 +1,21 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.2.0/openIdConnect.json", "type": "object", "required": [ "type", "openIdConnectUrl" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "openIdConnect" ] }, - "description": { - "type": "string" - }, "openIdConnectUrl": { "type": "string", "format": "uri" @@ -24,7 +26,5 @@ "$ref": "http://asyncapi.com/definitions/2.2.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/openIdConnect.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.2.0/openapiSchema_3_0.json b/definitions/2.2.0/openapiSchema_3_0.json index 99963d2e..5766c790 100644 --- a/definitions/2.2.0/openapiSchema_3_0.json +++ b/definitions/2.2.0/openapiSchema_3_0.json @@ -2,154 +2,26 @@ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "http://asyncapi.com/definitions/2.2.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 + "description": { + "type": "string" }, - "minProperties": { - "type": "integer", - "minimum": 0, - "default": 0 + "deprecated": { + "default": false, + "type": "boolean" }, - "required": { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "uniqueItems": true + "readOnly": { + "default": false, + "type": "boolean" }, - "enum": { - "type": "array", - "items": true, - "minItems": 1, - "uniqueItems": false + "writeOnly": { + "default": false, + "type": "boolean" }, + "default": true, "type": { "type": "string", "enum": [ @@ -161,15 +33,11 @@ "string" ] }, - "not": { - "oneOf": [ - { - "$ref": "#" - }, - { - "$ref": "#/definitions/Reference" - } - ] + "enum": { + "type": "array", + "minItems": 1, + "uniqueItems": false, + "items": true }, "allOf": { "type": "array", @@ -184,7 +52,7 @@ ] } }, - "oneOf": { + "anyOf": { "type": "array", "items": { "oneOf": [ @@ -197,7 +65,7 @@ ] } }, - "anyOf": { + "oneOf": { "type": "array", "items": { "oneOf": [ @@ -210,6 +78,63 @@ ] } }, + "not": { + "oneOf": [ + { + "$ref": "#" + }, + { + "$ref": "#/definitions/Reference" + } + ] + }, + "exclusiveMaximum": { + "default": false, + "type": "boolean" + }, + "maximum": { + "type": "number" + }, + "exclusiveMinimum": { + "default": false, + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "multipleOf": { + "type": "number", + "exclusiveMinimum": 0 + }, + "pattern": { + "type": "string", + "format": "regex" + }, + "format": { + "type": "string" + }, + "maxLength": { + "type": "integer", + "minimum": 0 + }, + "minLength": { + "default": 0, + "type": "integer", + "minimum": 0 + }, + "maxItems": { + "type": "integer", + "minimum": 0 + }, + "minItems": { + "default": 0, + "type": "integer", + "minimum": 0 + }, + "uniqueItems": { + "default": false, + "type": "boolean" + }, "items": { "oneOf": [ { @@ -220,6 +145,23 @@ } ] }, + "required": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "maxProperties": { + "type": "integer", + "minimum": 0 + }, + "minProperties": { + "default": 0, + "type": "integer", + "minimum": 0 + }, "properties": { "type": "object", "additionalProperties": { @@ -234,6 +176,7 @@ } }, "additionalProperties": { + "default": true, "oneOf": [ { "$ref": "#" @@ -244,38 +187,18 @@ { "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 + "nullable": { + "default": false, + "type": "boolean" }, "xml": { "$ref": "#/definitions/XML" @@ -284,5 +207,82 @@ "patternProperties": { "^x-": true }, - "additionalProperties": false -} \ No newline at end of file + "additionalProperties": false, + "definitions": { + "Discriminator": { + "type": "object", + "required": [ + "propertyName" + ], + "properties": { + "mapping": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "propertyName": { + "type": "string" + } + } + }, + "ExternalDocumentation": { + "type": "object", + "required": [ + "url" + ], + "properties": { + "description": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri-reference" + } + }, + "patternProperties": { + "^x-": {} + }, + "additionalProperties": false + }, + "Reference": { + "type": "object", + "required": [ + "$ref" + ], + "patternProperties": { + "^\\$ref$": { + "type": "string", + "format": "uri-reference" + } + } + }, + "XML": { + "type": "object", + "properties": { + "attribute": { + "default": false, + "type": "boolean" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string", + "format": "uri" + }, + "prefix": { + "type": "string" + }, + "wrapped": { + "default": false, + "type": "boolean" + } + }, + "patternProperties": { + "^x-": {} + }, + "additionalProperties": false + } + } +} diff --git a/definitions/2.2.0/operation.json b/definitions/2.2.0/operation.json index 4b07e317..a7484768 100644 --- a/definitions/2.2.0/operation.json +++ b/definitions/2.2.0/operation.json @@ -1,12 +1,33 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.2.0/operation.json", "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.2.0/specificationExtension.json" - } - }, "properties": { + "description": { + "type": "string" + }, + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.2.0/bindingsObject.json" + }, + "externalDocs": { + "$ref": "http://asyncapi.com/definitions/2.2.0/externalDocs.json" + }, + "message": { + "$ref": "http://asyncapi.com/definitions/2.2.0/message.json" + }, + "operationId": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "tags": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "http://asyncapi.com/definitions/2.2.0/tag.json" + } + }, "traits": { "type": "array", "items": { @@ -19,33 +40,12 @@ } ] } - }, - "summary": { - "type": "string" - }, - "description": { - "type": "string" - }, - "tags": { - "type": "array", - "items": { - "$ref": "http://asyncapi.com/definitions/2.2.0/tag.json" - }, - "uniqueItems": true - }, - "externalDocs": { - "$ref": "http://asyncapi.com/definitions/2.2.0/externalDocs.json" - }, - "operationId": { - "type": "string" - }, - "bindings": { - "$ref": "http://asyncapi.com/definitions/2.2.0/bindingsObject.json" - }, - "message": { - "$ref": "http://asyncapi.com/definitions/2.2.0/message.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/operation.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.2.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.2.0/operationTrait.json b/definitions/2.2.0/operationTrait.json index c104781f..9f4647af 100644 --- a/definitions/2.2.0/operationTrait.json +++ b/definitions/2.2.0/operationTrait.json @@ -1,24 +1,13 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.2.0/operationTrait.json", "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.2.0/specificationExtension.json" - } - }, "properties": { - "summary": { - "type": "string" - }, "description": { "type": "string" }, - "tags": { - "type": "array", - "items": { - "$ref": "http://asyncapi.com/definitions/2.2.0/tag.json" - }, - "uniqueItems": true + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.2.0/bindingsObject.json" }, "externalDocs": { "$ref": "http://asyncapi.com/definitions/2.2.0/externalDocs.json" @@ -26,10 +15,21 @@ "operationId": { "type": "string" }, - "bindings": { - "$ref": "http://asyncapi.com/definitions/2.2.0/bindingsObject.json" + "summary": { + "type": "string" + }, + "tags": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "http://asyncapi.com/definitions/2.2.0/tag.json" + } } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/operationTrait.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.2.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.2.0/parameter.json b/definitions/2.2.0/parameter.json index ba0430be..e42b4928 100644 --- a/definitions/2.2.0/parameter.json +++ b/definitions/2.2.0/parameter.json @@ -1,27 +1,27 @@ { - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.2.0/specificationExtension.json" - } - }, + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.2.0/parameter.json", "properties": { "description": { - "type": "string", - "description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed." + "description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed.", + "type": "string" }, - "schema": { - "$ref": "http://asyncapi.com/definitions/2.2.0/schema.json" + "$ref": { + "$ref": "http://asyncapi.com/definitions/2.2.0/ReferenceObject.json" }, "location": { - "type": "string", "description": "A runtime expression that specifies the location of the parameter value", + "type": "string", "pattern": "^\\$message\\.(header|payload)#(\\/(([^\\/~])|(~[01]))*)*" }, - "$ref": { - "$ref": "http://asyncapi.com/definitions/2.2.0/ReferenceObject.json" + "schema": { + "$ref": "http://asyncapi.com/definitions/2.2.0/schema.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/parameter.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.2.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.2.0/parameters.json b/definitions/2.2.0/parameters.json index d024f223..8ca5c3a5 100644 --- a/definitions/2.2.0/parameters.json +++ b/definitions/2.2.0/parameters.json @@ -1,4 +1,7 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.2.0/parameters.json", + "description": "JSON objects describing re-usable channel parameters.", "type": "object", "additionalProperties": { "oneOf": [ @@ -9,8 +12,5 @@ "$ref": "http://asyncapi.com/definitions/2.2.0/parameter.json" } ] - }, - "description": "JSON objects describing re-usable channel parameters.", - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/parameters.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.2.0/schema.json b/definitions/2.2.0/schema.json index 708f5a6e..e8584805 100644 --- a/definitions/2.2.0/schema.json +++ b/definitions/2.2.0/schema.json @@ -1,40 +1,15 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.2.0/schema.json", "allOf": [ { "$ref": "http://json-schema.org/draft-07/schema#" }, { - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.2.0/specificationExtension.json" - } - }, "properties": { - "additionalProperties": { - "anyOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.2.0/schema.json" - }, - { - "type": "boolean" - } - ], - "default": {} - }, - "items": { - "anyOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.2.0/schema.json" - }, - { - "type": "array", - "minItems": 1, - "items": { - "$ref": "http://asyncapi.com/definitions/2.2.0/schema.json" - } - } - ], - "default": {} + "deprecated": { + "default": false, + "type": "boolean" }, "allOf": { "type": "array", @@ -43,14 +18,14 @@ "$ref": "http://asyncapi.com/definitions/2.2.0/schema.json" } }, - "oneOf": { + "anyOf": { "type": "array", "minItems": 1, "items": { "$ref": "http://asyncapi.com/definitions/2.2.0/schema.json" } }, - "anyOf": { + "oneOf": { "type": "array", "minItems": 1, "items": { @@ -60,39 +35,64 @@ "not": { "$ref": "http://asyncapi.com/definitions/2.2.0/schema.json" }, + "contains": { + "$ref": "http://asyncapi.com/definitions/2.2.0/schema.json" + }, + "items": { + "default": {}, + "anyOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.2.0/schema.json" + }, + { + "type": "array", + "minItems": 1, + "items": { + "$ref": "http://asyncapi.com/definitions/2.2.0/schema.json" + } + } + ] + }, + "propertyNames": { + "$ref": "http://asyncapi.com/definitions/2.2.0/schema.json" + }, "properties": { + "default": {}, "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.2.0/schema.json" - }, - "default": {} + } }, "patternProperties": { + "default": {}, "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.2.0/schema.json" - }, - "default": {} - }, - "propertyNames": { - "$ref": "http://asyncapi.com/definitions/2.2.0/schema.json" + } }, - "contains": { - "$ref": "http://asyncapi.com/definitions/2.2.0/schema.json" + "additionalProperties": { + "default": {}, + "anyOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.2.0/schema.json" + }, + { + "type": "boolean" + } + ] }, "discriminator": { "type": "string" }, "externalDocs": { "$ref": "http://asyncapi.com/definitions/2.2.0/externalDocs.json" - }, - "deprecated": { - "type": "boolean", - "default": false + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.2.0/specificationExtension.json" } } } - ], - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/schema.json" -} \ No newline at end of file + ] +} diff --git a/definitions/2.2.0/schemas.json b/definitions/2.2.0/schemas.json index 00ca72ff..830cd2d2 100644 --- a/definitions/2.2.0/schemas.json +++ b/definitions/2.2.0/schemas.json @@ -1,9 +1,9 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.2.0/schemas.json", + "description": "JSON objects describing schemas the API uses.", "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.2.0/schema.json" - }, - "description": "JSON objects describing schemas the API uses.", - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/schemas.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.2.0/server.json b/definitions/2.2.0/server.json index d0958120..69faeddb 100644 --- a/definitions/2.2.0/server.json +++ b/definitions/2.2.0/server.json @@ -1,43 +1,43 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.2.0/server.json", "description": "An object representing a Server.", + "type": "object", "required": [ "url", "protocol" ], - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.2.0/specificationExtension.json" - } - }, "properties": { - "url": { - "type": "string" - }, "description": { "type": "string" }, + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.2.0/bindingsObject.json" + }, "protocol": { - "type": "string", - "description": "The transfer protocol." + "description": "The transfer protocol.", + "type": "string" }, "protocolVersion": { "type": "string" }, - "variables": { - "$ref": "http://asyncapi.com/definitions/2.2.0/serverVariables.json" - }, "security": { "type": "array", "items": { "$ref": "http://asyncapi.com/definitions/2.2.0/SecurityRequirement.json" } }, - "bindings": { - "$ref": "http://asyncapi.com/definitions/2.2.0/bindingsObject.json" + "url": { + "type": "string" + }, + "variables": { + "$ref": "http://asyncapi.com/definitions/2.2.0/serverVariables.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/server.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.2.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.2.0/serverVariable.json b/definitions/2.2.0/serverVariable.json index eb364353..6cc32e2d 100644 --- a/definitions/2.2.0/serverVariable.json +++ b/definitions/2.2.0/serverVariable.json @@ -1,33 +1,33 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.2.0/serverVariable.json", "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.2.0/specificationExtension.json" - } - }, + "type": "object", "properties": { - "enum": { + "description": { + "type": "string" + }, + "examples": { "type": "array", "items": { "type": "string" - }, - "uniqueItems": true + } }, "default": { "type": "string" }, - "description": { - "type": "string" - }, - "examples": { + "enum": { "type": "array", + "uniqueItems": true, "items": { "type": "string" } } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/serverVariable.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.2.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.2.0/serverVariables.json b/definitions/2.2.0/serverVariables.json index 8edf45a1..60a8c3ac 100644 --- a/definitions/2.2.0/serverVariables.json +++ b/definitions/2.2.0/serverVariables.json @@ -1,8 +1,8 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.2.0/serverVariables.json", "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.2.0/serverVariable.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/serverVariables.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.2.0/specificationExtension.json b/definitions/2.2.0/specificationExtension.json index 7bdcafe1..5a03bf06 100644 --- a/definitions/2.2.0/specificationExtension.json +++ b/definitions/2.2.0/specificationExtension.json @@ -1,7 +1,7 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.2.0/specificationExtension.json", "description": "Any property starting with x- is valid.", - "additionalProperties": true, "additionalItems": true, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/specificationExtension.json" -} \ No newline at end of file + "additionalProperties": true +} diff --git a/definitions/2.2.0/symmetricEncryption.json b/definitions/2.2.0/symmetricEncryption.json index 53be37ec..34c7602a 100644 --- a/definitions/2.2.0/symmetricEncryption.json +++ b/definitions/2.2.0/symmetricEncryption.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.2.0/symmetricEncryption.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "symmetricEncryption" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,7 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.2.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/symmetricEncryption.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.2.0/tag.json b/definitions/2.2.0/tag.json index 7fa64432..7e7efdbe 100644 --- a/definitions/2.2.0/tag.json +++ b/definitions/2.2.0/tag.json @@ -1,18 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.2.0/tag.json", "type": "object", - "additionalProperties": false, "required": [ "name" ], "properties": { - "name": { - "type": "string" - }, "description": { "type": "string" }, "externalDocs": { "$ref": "http://asyncapi.com/definitions/2.2.0/externalDocs.json" + }, + "name": { + "type": "string" } }, "patternProperties": { @@ -20,6 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.2.0/specificationExtension.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/tag.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.2.0/userPassword.json b/definitions/2.2.0/userPassword.json index f9569e2d..1be393a6 100644 --- a/definitions/2.2.0/userPassword.json +++ b/definitions/2.2.0/userPassword.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.2.0/userPassword.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "userPassword" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,7 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.2.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.2.0/userPassword.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.3.0/APIKeyHTTPSecurityScheme.json b/definitions/2.3.0/APIKeyHTTPSecurityScheme.json index 5218b532..a39eef07 100644 --- a/definitions/2.3.0/APIKeyHTTPSecurityScheme.json +++ b/definitions/2.3.0/APIKeyHTTPSecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.3.0/APIKeyHTTPSecurityScheme.json", "type": "object", "required": [ "type", @@ -6,15 +8,15 @@ "in" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "httpApiKey" ] }, - "name": { - "type": "string" - }, "in": { "type": "string", "enum": [ @@ -23,7 +25,7 @@ "cookie" ] }, - "description": { + "name": { "type": "string" } }, @@ -32,7 +34,5 @@ "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/APIKeyHTTPSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.3.0/BearerHTTPSecurityScheme.json b/definitions/2.3.0/BearerHTTPSecurityScheme.json index a0cab5e7..edfa9290 100644 --- a/definitions/2.3.0/BearerHTTPSecurityScheme.json +++ b/definitions/2.3.0/BearerHTTPSecurityScheme.json @@ -1,27 +1,29 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.3.0/BearerHTTPSecurityScheme.json", "type": "object", "required": [ "type", "scheme" ], "properties": { - "scheme": { + "description": { + "type": "string" + }, + "type": { "type": "string", "enum": [ - "bearer" + "http" ] }, "bearerFormat": { "type": "string" }, - "type": { + "scheme": { "type": "string", "enum": [ - "http" + "bearer" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -29,7 +31,5 @@ "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/BearerHTTPSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.3.0/HTTPSecurityScheme.json b/definitions/2.3.0/HTTPSecurityScheme.json index 5dd62945..a6e16ba2 100644 --- a/definitions/2.3.0/HTTPSecurityScheme.json +++ b/definitions/2.3.0/HTTPSecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.3.0/HTTPSecurityScheme.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/2.3.0/NonBearerHTTPSecurityScheme.json" @@ -9,7 +11,5 @@ { "$ref": "http://asyncapi.com/definitions/2.3.0/APIKeyHTTPSecurityScheme.json" } - ], - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/HTTPSecurityScheme.json" -} \ No newline at end of file + ] +} diff --git a/definitions/2.3.0/NonBearerHTTPSecurityScheme.json b/definitions/2.3.0/NonBearerHTTPSecurityScheme.json index 52d2adb9..8d4f1d56 100644 --- a/definitions/2.3.0/NonBearerHTTPSecurityScheme.json +++ b/definitions/2.3.0/NonBearerHTTPSecurityScheme.json @@ -1,4 +1,7 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.3.0/NonBearerHTTPSecurityScheme.json", + "type": "object", "not": { "type": "object", "properties": { @@ -10,15 +13,11 @@ } } }, - "type": "object", "required": [ "scheme", "type" ], "properties": { - "scheme": { - "type": "string" - }, "description": { "type": "string" }, @@ -27,6 +26,9 @@ "enum": [ "http" ] + }, + "scheme": { + "type": "string" } }, "patternProperties": { @@ -34,7 +36,5 @@ "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/NonBearerHTTPSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.3.0/Reference.json b/definitions/2.3.0/Reference.json index d91bda6e..8afe9841 100644 --- a/definitions/2.3.0/Reference.json +++ b/definitions/2.3.0/Reference.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.3.0/Reference.json", "type": "object", "required": [ "$ref" @@ -7,7 +9,5 @@ "$ref": { "$ref": "http://asyncapi.com/definitions/2.3.0/ReferenceObject.json" } - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/Reference.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.3.0/ReferenceObject.json b/definitions/2.3.0/ReferenceObject.json index b02a9f31..009f0bc0 100644 --- a/definitions/2.3.0/ReferenceObject.json +++ b/definitions/2.3.0/ReferenceObject.json @@ -1,6 +1,6 @@ { - "type": "string", - "format": "uri-reference", "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/ReferenceObject.json" -} \ No newline at end of file + "$id": "http://asyncapi.com/definitions/2.3.0/ReferenceObject.json", + "type": "string", + "format": "uri-reference" +} diff --git a/definitions/2.3.0/SaslGssapiSecurityScheme.json b/definitions/2.3.0/SaslGssapiSecurityScheme.json index 27addf0f..d3539993 100644 --- a/definitions/2.3.0/SaslGssapiSecurityScheme.json +++ b/definitions/2.3.0/SaslGssapiSecurityScheme.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.3.0/SaslGssapiSecurityScheme.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "gssapi" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,7 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/SaslGssapiSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.3.0/SaslPlainSecurityScheme.json b/definitions/2.3.0/SaslPlainSecurityScheme.json index 55d04cd1..03b5489b 100644 --- a/definitions/2.3.0/SaslPlainSecurityScheme.json +++ b/definitions/2.3.0/SaslPlainSecurityScheme.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.3.0/SaslPlainSecurityScheme.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "plain" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,7 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/SaslPlainSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.3.0/SaslScramSecurityScheme.json b/definitions/2.3.0/SaslScramSecurityScheme.json index 54ace0ee..779186cf 100644 --- a/definitions/2.3.0/SaslScramSecurityScheme.json +++ b/definitions/2.3.0/SaslScramSecurityScheme.json @@ -1,18 +1,20 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.3.0/SaslScramSecurityScheme.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "scramSha256", "scramSha512" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -20,7 +22,5 @@ "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/SaslScramSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.3.0/SaslSecurityScheme.json b/definitions/2.3.0/SaslSecurityScheme.json index 5454ccb1..d14e6cd6 100644 --- a/definitions/2.3.0/SaslSecurityScheme.json +++ b/definitions/2.3.0/SaslSecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.3.0/SaslSecurityScheme.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/2.3.0/SaslPlainSecurityScheme.json" @@ -9,7 +11,5 @@ { "$ref": "http://asyncapi.com/definitions/2.3.0/SaslGssapiSecurityScheme.json" } - ], - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/SaslSecurityScheme.json" -} \ No newline at end of file + ] +} diff --git a/definitions/2.3.0/SecurityRequirement.json b/definitions/2.3.0/SecurityRequirement.json index 2c7fe765..28f7c297 100644 --- a/definitions/2.3.0/SecurityRequirement.json +++ b/definitions/2.3.0/SecurityRequirement.json @@ -1,12 +1,12 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.3.0/SecurityRequirement.json", "type": "object", "additionalProperties": { "type": "array", + "uniqueItems": true, "items": { "type": "string" - }, - "uniqueItems": true - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/SecurityRequirement.json" -} \ No newline at end of file + } + } +} diff --git a/definitions/2.3.0/SecurityScheme.json b/definitions/2.3.0/SecurityScheme.json index ce795ddb..51763413 100644 --- a/definitions/2.3.0/SecurityScheme.json +++ b/definitions/2.3.0/SecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.3.0/SecurityScheme.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/2.3.0/userPassword.json" @@ -27,7 +29,5 @@ { "$ref": "http://asyncapi.com/definitions/2.3.0/SaslSecurityScheme.json" } - ], - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/SecurityScheme.json" -} \ No newline at end of file + ] +} diff --git a/definitions/2.3.0/X509.json b/definitions/2.3.0/X509.json index 6c1d1127..a1bc4447 100644 --- a/definitions/2.3.0/X509.json +++ b/definitions/2.3.0/X509.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.3.0/X509.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "X509" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,7 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/X509.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.3.0/apiKey.json b/definitions/2.3.0/apiKey.json index ba2f2bc3..035c4370 100644 --- a/definitions/2.3.0/apiKey.json +++ b/definitions/2.3.0/apiKey.json @@ -1,10 +1,15 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.3.0/apiKey.json", "type": "object", "required": [ "type", "in" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ @@ -17,9 +22,6 @@ "user", "password" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -27,7 +29,5 @@ "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/apiKey.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.3.0/asymmetricEncryption.json b/definitions/2.3.0/asymmetricEncryption.json index 455ad200..be54da83 100644 --- a/definitions/2.3.0/asymmetricEncryption.json +++ b/definitions/2.3.0/asymmetricEncryption.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.3.0/asymmetricEncryption.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "asymmetricEncryption" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,7 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/asymmetricEncryption.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.3.0/asyncapi.json b/definitions/2.3.0/asyncapi.json index fa4d4077..b815d29a 100644 --- a/definitions/2.3.0/asyncapi.json +++ b/definitions/2.3.0/asyncapi.json @@ -1,56 +1,56 @@ { - "title": "AsyncAPI 2.3.0 schema.", "$schema": "http://json-schema.org/draft-07/schema#", "$id": "http://asyncapi.com/definitions/2.3.0/asyncapi.json", + "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": { + "id": { + "description": "A unique id representing the application.", + "type": "string", + "format": "uri" + }, "asyncapi": { + "description": "The AsyncAPI specification version of this document.", "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" + "channels": { + "$ref": "http://asyncapi.com/definitions/2.3.0/channels.json" }, - "servers": { - "$ref": "http://asyncapi.com/definitions/2.3.0/servers.json" + "components": { + "$ref": "http://asyncapi.com/definitions/2.3.0/components.json" }, "defaultContentType": { "type": "string" }, - "channels": { - "$ref": "http://asyncapi.com/definitions/2.3.0/channels.json" + "externalDocs": { + "$ref": "http://asyncapi.com/definitions/2.3.0/externalDocs.json" }, - "components": { - "$ref": "http://asyncapi.com/definitions/2.3.0/components.json" + "info": { + "$ref": "http://asyncapi.com/definitions/2.3.0/info.json" + }, + "servers": { + "$ref": "http://asyncapi.com/definitions/2.3.0/servers.json" }, "tags": { "type": "array", + "uniqueItems": true, "items": { "$ref": "http://asyncapi.com/definitions/2.3.0/tag.json" - }, - "uniqueItems": true - }, - "externalDocs": { - "$ref": "http://asyncapi.com/definitions/2.3.0/externalDocs.json" + } } - } -} \ No newline at end of file + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.3.0/avroSchema_v1.json b/definitions/2.3.0/avroSchema_v1.json index 93a7615d..b084f0a9 100644 --- a/definitions/2.3.0/avroSchema_v1.json +++ b/definitions/2.3.0/avroSchema_v1.json @@ -1,220 +1,131 @@ { "$schema": "http://json-schema.org/draft-07/schema#", "$id": "http://asyncapi.com/definitions/2.3.0/avroSchema_v1.json", + "title": "Avro Schema Definition", + "description": "Json-Schema definition for Avro AVSC files.", + "oneOf": [ + { + "$ref": "#/definitions/avroSchema" + } + ], "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.", + "avroArray": { + "title": "Array", + "description": "An array", "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", + "type", + "items" + ], "properties": { - "name": { - "$ref": "#/definitions/name" - }, "type": { - "$ref": "#/definitions/types" - }, - "doc": { - "type": "string" + "type": "string", + "const": "array" }, - "default": true, - "order": { - "enum": [ - "ascending", - "descending", - "ignore" - ] + "items": { + "$ref": "#/definitions/types" }, "aliases": { "type": "array", "items": { "$ref": "#/definitions/name" } - } - }, - "required": [ - "name", - "type" - ] - }, - "avroRecord": { - "title": "Record", - "description": "A Record", - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "record" + }, + "doc": { + "type": "string" }, "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", + "required": [ + "type", + "name", + "symbols" + ], "properties": { "type": { "type": "string", "const": "enum" }, + "aliases": { + "type": "array", + "items": { + "$ref": "#/definitions/name" + } + }, + "doc": { + "type": "string" + }, "name": { "$ref": "#/definitions/name" }, "namespace": { "$ref": "#/definitions/namespace" }, - "doc": { - "type": "string" - }, - "aliases": { + "symbols": { "type": "array", "items": { "$ref": "#/definitions/name" } + } + } + }, + "avroField": { + "title": "Field", + "description": "A field within a Record", + "type": "object", + "required": [ + "name", + "type" + ], + "properties": { + "default": true, + "type": { + "$ref": "#/definitions/types" }, - "symbols": { + "aliases": { "type": "array", "items": { "$ref": "#/definitions/name" } + }, + "doc": { + "type": "string" + }, + "name": { + "$ref": "#/definitions/name" + }, + "order": { + "enum": [ + "ascending", + "descending", + "ignore" + ] } - }, + } + }, + "avroFixed": { + "title": "Fixed", + "description": "A fixed sized array of bytes", + "type": "object", "required": [ "type", "name", - "symbols" - ] - }, - "avroArray": { - "title": "Array", - "description": "An array", - "type": "object", + "size" + ], "properties": { "type": { "type": "string", - "const": "array" - }, - "name": { - "$ref": "#/definitions/name" - }, - "namespace": { - "$ref": "#/definitions/namespace" - }, - "doc": { - "type": "string" + "const": "fixed" }, "aliases": { "type": "array", @@ -222,82 +133,117 @@ "$ref": "#/definitions/name" } }, - "items": { - "$ref": "#/definitions/types" + "doc": { + "type": "string" + }, + "name": { + "$ref": "#/definitions/name" + }, + "namespace": { + "$ref": "#/definitions/namespace" + }, + "size": { + "type": "number" } - }, - "required": [ - "type", - "items" - ] + } }, "avroMap": { "title": "Map", "description": "A map of values", "type": "object", + "required": [ + "type", + "values" + ], "properties": { "type": { "type": "string", "const": "map" }, - "name": { - "$ref": "#/definitions/name" - }, - "namespace": { - "$ref": "#/definitions/namespace" - }, - "doc": { - "type": "string" - }, "aliases": { "type": "array", "items": { "$ref": "#/definitions/name" } }, + "doc": { + "type": "string" + }, + "name": { + "$ref": "#/definitions/name" + }, + "namespace": { + "$ref": "#/definitions/namespace" + }, "values": { "$ref": "#/definitions/types" } - }, - "required": [ - "type", - "values" - ] + } }, - "avroFixed": { - "title": "Fixed", - "description": "A fixed sized array of bytes", + "avroRecord": { + "title": "Record", + "description": "A Record", "type": "object", + "required": [ + "type", + "name", + "fields" + ], "properties": { "type": { "type": "string", - "const": "fixed" - }, - "name": { - "$ref": "#/definitions/name" + "const": "record" }, - "namespace": { - "$ref": "#/definitions/namespace" + "aliases": { + "type": "array", + "items": { + "$ref": "#/definitions/name" + } }, "doc": { "type": "string" }, - "aliases": { + "fields": { "type": "array", "items": { - "$ref": "#/definitions/name" + "$ref": "#/definitions/avroField" } }, - "size": { - "type": "number" + "name": { + "$ref": "#/definitions/name" + }, + "namespace": { + "$ref": "#/definitions/namespace" + } + } + }, + "avroSchema": { + "title": "Avro Schema", + "description": "Root Schema", + "oneOf": [ + { + "$ref": "#/definitions/types" } - }, - "required": [ - "type", - "name", - "size" ] }, + "avroUnion": { + "title": "Union", + "description": "A Union of types", + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/definitions/avroSchema" + } + }, + "customTypeReference": { + "title": "Custom Type", + "description": "Reference to a ComplexType", + "type": "string", + "not": { + "$ref": "#/definitions/primitiveType" + }, + "pattern": "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$" + }, "name": { "type": "string", "pattern": "^[A-Za-z_][A-Za-z0-9_]*$" @@ -305,13 +251,67 @@ "namespace": { "type": "string", "pattern": "^([A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*)*$" + }, + "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", + "required": [ + "type" + ], + "properties": { + "type": { + "$ref": "#/definitions/primitiveType" + } + } + }, + "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" + } + ] } - }, - "description": "Json-Schema definition for Avro AVSC files.", - "oneOf": [ - { - "$ref": "#/definitions/avroSchema" - } - ], - "title": "Avro Schema Definition" -} \ No newline at end of file + } +} diff --git a/definitions/2.3.0/bindingsObject.json b/definitions/2.3.0/bindingsObject.json index 6f5d1358..36a51f9e 100644 --- a/definitions/2.3.0/bindingsObject.json +++ b/definitions/2.3.0/bindingsObject.json @@ -1,24 +1,24 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.3.0/bindingsObject.json", "type": "object", - "additionalProperties": true, "properties": { - "http": {}, - "ws": {}, "amqp": {}, "amqp1": {}, + "anypointmq": {}, + "http": {}, + "ibmmq": {}, + "jms": {}, + "kafka": {}, "mqtt": {}, "mqtt5": {}, - "kafka": {}, - "anypointmq": {}, "nats": {}, - "jms": {}, + "redis": {}, "sns": {}, + "solace": {}, "sqs": {}, "stomp": {}, - "redis": {}, - "ibmmq": {}, - "solace": {} + "ws": {} }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/bindingsObject.json" -} \ No newline at end of file + "additionalProperties": true +} diff --git a/definitions/2.3.0/channelItem.json b/definitions/2.3.0/channelItem.json index cbd107cf..6de84fcf 100644 --- a/definitions/2.3.0/channelItem.json +++ b/definitions/2.3.0/channelItem.json @@ -1,44 +1,44 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$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": { + "description": { + "description": "A description of the channel.", + "type": "string" + }, + "deprecated": { + "default": false, + "type": "boolean" + }, "$ref": { "$ref": "http://asyncapi.com/definitions/2.3.0/ReferenceObject.json" }, + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.3.0/bindingsObject.json" + }, "parameters": { "$ref": "http://asyncapi.com/definitions/2.3.0/parameters.json" }, - "description": { - "type": "string", - "description": "A description of the channel." + "publish": { + "$ref": "http://asyncapi.com/definitions/2.3.0/operation.json" }, "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.", + "type": "array", + "uniqueItems": true, "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" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/channelItem.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.3.0/channels.json b/definitions/2.3.0/channels.json index f1e4c2ed..f1d78442 100644 --- a/definitions/2.3.0/channels.json +++ b/definitions/2.3.0/channels.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.3.0/channels.json", "type": "object", "propertyNames": { "type": "string", @@ -7,7 +9,5 @@ }, "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.3.0/channelItem.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/channels.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.3.0/components.json b/definitions/2.3.0/components.json index e84fa5c9..40991374 100644 --- a/definitions/2.3.0/components.json +++ b/definitions/2.3.0/components.json @@ -1,42 +1,17 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.3.0/components.json", "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" - } - }, + "type": "object", "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": { + "channelBindings": { "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" - } - ] - } + "additionalProperties": { + "$ref": "http://asyncapi.com/definitions/2.3.0/bindingsObject.json" } }, - "parameters": { - "$ref": "http://asyncapi.com/definitions/2.3.0/parameters.json" + "channels": { + "$ref": "http://asyncapi.com/definitions/2.3.0/channels.json" }, "correlationIds": { "type": "object", @@ -53,10 +28,10 @@ } } }, - "operationTraits": { + "messageBindings": { "type": "object", "additionalProperties": { - "$ref": "http://asyncapi.com/definitions/2.3.0/operationTrait.json" + "$ref": "http://asyncapi.com/definitions/2.3.0/bindingsObject.json" } }, "messageTraits": { @@ -65,31 +40,56 @@ "$ref": "http://asyncapi.com/definitions/2.3.0/messageTrait.json" } }, - "serverBindings": { + "messages": { + "$ref": "http://asyncapi.com/definitions/2.3.0/messages.json" + }, + "operationBindings": { "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.3.0/bindingsObject.json" } }, - "channelBindings": { + "operationTraits": { "type": "object", "additionalProperties": { - "$ref": "http://asyncapi.com/definitions/2.3.0/bindingsObject.json" + "$ref": "http://asyncapi.com/definitions/2.3.0/operationTrait.json" } }, - "operationBindings": { + "parameters": { + "$ref": "http://asyncapi.com/definitions/2.3.0/parameters.json" + }, + "schemas": { + "$ref": "http://asyncapi.com/definitions/2.3.0/schemas.json" + }, + "securitySchemes": { "type": "object", - "additionalProperties": { - "$ref": "http://asyncapi.com/definitions/2.3.0/bindingsObject.json" + "patternProperties": { + "^[\\w\\d\\.\\-_]+$": { + "oneOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.3.0/Reference.json" + }, + { + "$ref": "http://asyncapi.com/definitions/2.3.0/SecurityScheme.json" + } + ] + } } }, - "messageBindings": { + "serverBindings": { "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.3.0/bindingsObject.json" } + }, + "servers": { + "$ref": "http://asyncapi.com/definitions/2.3.0/servers.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/components.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.3.0/contact.json b/definitions/2.3.0/contact.json index 2cd15aa7..df82fb96 100644 --- a/definitions/2.3.0/contact.json +++ b/definitions/2.3.0/contact.json @@ -1,21 +1,22 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.3.0/contact.json", "description": "Contact information for the owners of the API.", - "additionalProperties": false, + "type": "object", "properties": { - "name": { + "email": { + "description": "The email address of the contact person/organization.", "type": "string", - "description": "The identifying name of the contact person/organization." + "format": "email" + }, + "name": { + "description": "The identifying name of the contact person/organization.", + "type": "string" }, "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" + "format": "uri" } }, "patternProperties": { @@ -23,6 +24,5 @@ "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/contact.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.3.0/correlationId.json b/definitions/2.3.0/correlationId.json index 32808f72..75aba0b6 100644 --- a/definitions/2.3.0/correlationId.json +++ b/definitions/2.3.0/correlationId.json @@ -1,25 +1,25 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$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." + "description": "A optional description of the correlation ID. GitHub Flavored Markdown is allowed.", + "type": "string" }, "location": { - "type": "string", "description": "A runtime expression that specifies the location of the correlation ID", + "type": "string", "pattern": "^\\$message\\.(header|payload)#(\\/(([^\\/~])|(~[01]))*)*" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/correlationId.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.3.0/external.json b/definitions/2.3.0/external.json index e5eab736..11d8b272 100644 --- a/definitions/2.3.0/external.json +++ b/definitions/2.3.0/external.json @@ -1,5 +1,5 @@ { - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/http://something.example.com/schemas/external.json", - "type": "string" - } \ No newline at end of file + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.3.0/http://something.example.com/schemas/external.json", + "type": "string" +} diff --git a/definitions/2.3.0/externalDocs.json b/definitions/2.3.0/externalDocs.json index eeefb738..492fd5c3 100644 --- a/definitions/2.3.0/externalDocs.json +++ b/definitions/2.3.0/externalDocs.json @@ -1,7 +1,8 @@ { - "type": "object", - "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.3.0/externalDocs.json", "description": "information about external documentation", + "type": "object", "required": [ "url" ], @@ -19,6 +20,5 @@ "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/externalDocs.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.3.0/info.json b/definitions/2.3.0/info.json index 0410e566..d3f2034a 100644 --- a/definitions/2.3.0/info.json +++ b/definitions/2.3.0/info.json @@ -1,41 +1,41 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.3.0/info.json", "description": "General information about the API.", + "type": "object", "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": "A unique and precise title of the API.", + "type": "string" }, "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" + "description": "A longer description of the API. Should be different from the title. CommonMark is allowed.", + "type": "string" }, "contact": { "$ref": "http://asyncapi.com/definitions/2.3.0/contact.json" }, "license": { "$ref": "http://asyncapi.com/definitions/2.3.0/license.json" + }, + "termsOfService": { + "description": "A URL to the Terms of Service for the API. MUST be in the format of a URL.", + "type": "string", + "format": "uri" + }, + "version": { + "description": "A semantic version number of the API.", + "type": "string" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/info.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.3.0/license.json b/definitions/2.3.0/license.json index 05236c1a..bff72a4f 100644 --- a/definitions/2.3.0/license.json +++ b/definitions/2.3.0/license.json @@ -1,17 +1,18 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$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." + "description": "The name of the license type. It's encouraged to use an OSI compatible license.", + "type": "string" }, "url": { - "type": "string", "description": "The URL pointing to the license.", + "type": "string", "format": "uri" } }, @@ -20,6 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/license.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.3.0/message.json b/definitions/2.3.0/message.json index 478a66f4..405a9cb0 100644 --- a/definitions/2.3.0/message.json +++ b/definitions/2.3.0/message.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.3.0/message.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/2.3.0/Reference.json" @@ -10,7 +12,6 @@ "required": [ "oneOf" ], - "additionalProperties": false, "properties": { "oneOf": { "type": "array", @@ -18,128 +19,11 @@ "$ref": "http://asyncapi.com/definitions/2.3.0/message.json" } } - } + }, + "additionalProperties": false }, { "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": { @@ -219,8 +103,8 @@ "properties": { "schemaFormat": { "enum": [ - "application/vnd.oai.openapi;version=3.0.0", - "application/vnd.oai.openapi+json;version=3.0.0", + "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" ] } @@ -257,11 +141,127 @@ } } } - ] + ], + "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": { + "type": "array", + "items": { + "type": "object", + "anyOf": [ + { + "required": [ + "payload" + ] + }, + { + "required": [ + "headers" + ] + } + ], + "properties": { + "headers": { + "type": "object" + }, + "name": { + "description": "Machine readable name of the message example.", + "type": "string" + }, + "payload": {}, + "summary": { + "description": "A brief summary of the message example.", + "type": "string" + } + }, + "additionalProperties": false + } + }, + "deprecated": { + "default": false, + "type": "boolean" + }, + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.3.0/bindingsObject.json" + }, + "contentType": { + "type": "string" + }, + "correlationId": { + "oneOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.3.0/Reference.json" + }, + { + "$ref": "http://asyncapi.com/definitions/2.3.0/correlationId.json" + } + ] + }, + "externalDocs": { + "$ref": "http://asyncapi.com/definitions/2.3.0/externalDocs.json" + }, + "headers": { + "allOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.3.0/schema.json" + }, + { + "properties": { + "type": { + "const": "object" + } + } + } + ] + }, + "name": { + "description": "Name of the message.", + "type": "string" + }, + "payload": {}, + "schemaFormat": { + "type": "string" + }, + "summary": { + "description": "A brief summary of the message.", + "type": "string" + }, + "tags": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "http://asyncapi.com/definitions/2.3.0/tag.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" + } + ] + } + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" + } + }, + "additionalProperties": false } ] } - ], - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/message.json" -} \ No newline at end of file + ] +} diff --git a/definitions/2.3.0/messageTrait.json b/definitions/2.3.0/messageTrait.json index 006e42d1..985fa61f 100644 --- a/definitions/2.3.0/messageTrait.json +++ b/definitions/2.3.0/messageTrait.json @@ -1,18 +1,45 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$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": { + "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": { + "type": "array", + "items": { + "type": "object" + } + }, + "deprecated": { + "default": false, + "type": "boolean" + }, + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.3.0/bindingsObject.json" + }, "contentType": { "type": "string" }, + "correlationId": { + "oneOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.3.0/Reference.json" + }, + { + "$ref": "http://asyncapi.com/definitions/2.3.0/correlationId.json" + } + ] + }, + "externalDocs": { + "$ref": "http://asyncapi.com/definitions/2.3.0/externalDocs.json" + }, "headers": { "allOf": [ { @@ -27,56 +54,29 @@ } ] }, - "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." + "description": "Name of the message.", + "type": "string" }, - "externalDocs": { - "$ref": "http://asyncapi.com/definitions/2.3.0/externalDocs.json" + "schemaFormat": { + "type": "string" }, - "deprecated": { - "type": "boolean", - "default": false + "summary": { + "description": "A brief summary of the message.", + "type": "string" }, - "examples": { + "tags": { "type": "array", + "uniqueItems": true, "items": { - "type": "object" + "$ref": "http://asyncapi.com/definitions/2.3.0/tag.json" } - }, - "bindings": { - "$ref": "http://asyncapi.com/definitions/2.3.0/bindingsObject.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/messageTrait.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.3.0/messages.json b/definitions/2.3.0/messages.json index 3fb3b29a..5e7ab183 100644 --- a/definitions/2.3.0/messages.json +++ b/definitions/2.3.0/messages.json @@ -1,9 +1,9 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.3.0/messages.json", + "description": "JSON objects describing the messages being consumed and produced by the API.", "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.", - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/messages.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.3.0/oauth2Flow.json b/definitions/2.3.0/oauth2Flow.json index 8cb18de0..7f4ffb16 100644 --- a/definitions/2.3.0/oauth2Flow.json +++ b/definitions/2.3.0/oauth2Flow.json @@ -1,20 +1,22 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$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" + }, + "tokenUrl": { + "type": "string", + "format": "uri" } }, "patternProperties": { @@ -22,7 +24,5 @@ "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/oauth2Flow.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.3.0/oauth2Flows.json b/definitions/2.3.0/oauth2Flows.json index 265153a7..71350d35 100644 --- a/definitions/2.3.0/oauth2Flows.json +++ b/definitions/2.3.0/oauth2Flows.json @@ -1,23 +1,25 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.3.0/oauth2Flows.json", "type": "object", "required": [ "type", "flows" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "oauth2" ] }, - "description": { - "type": "string" - }, "flows": { "type": "object", "properties": { - "implicit": { + "authorizationCode": { "allOf": [ { "$ref": "http://asyncapi.com/definitions/2.3.0/oauth2Flow.json" @@ -25,19 +27,13 @@ { "required": [ "authorizationUrl", + "tokenUrl", "scopes" ] - }, - { - "not": { - "required": [ - "tokenUrl" - ] - } } ] }, - "password": { + "clientCredentials": { "allOf": [ { "$ref": "http://asyncapi.com/definitions/2.3.0/oauth2Flow.json" @@ -57,37 +53,43 @@ } ] }, - "clientCredentials": { + "implicit": { "allOf": [ { "$ref": "http://asyncapi.com/definitions/2.3.0/oauth2Flow.json" }, { "required": [ - "tokenUrl", + "authorizationUrl", "scopes" ] }, { "not": { "required": [ - "authorizationUrl" + "tokenUrl" ] } } ] }, - "authorizationCode": { + "password": { "allOf": [ { "$ref": "http://asyncapi.com/definitions/2.3.0/oauth2Flow.json" }, { "required": [ - "authorizationUrl", "tokenUrl", "scopes" ] + }, + { + "not": { + "required": [ + "authorizationUrl" + ] + } } ] } @@ -99,7 +101,5 @@ "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" } - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/oauth2Flows.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.3.0/oauth2Scopes.json b/definitions/2.3.0/oauth2Scopes.json index 28eb0593..0771d904 100644 --- a/definitions/2.3.0/oauth2Scopes.json +++ b/definitions/2.3.0/oauth2Scopes.json @@ -1,8 +1,8 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.3.0/oauth2Scopes.json", "type": "object", "additionalProperties": { "type": "string" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/oauth2Scopes.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.3.0/openIdConnect.json b/definitions/2.3.0/openIdConnect.json index a2fffcaa..3902de1c 100644 --- a/definitions/2.3.0/openIdConnect.json +++ b/definitions/2.3.0/openIdConnect.json @@ -1,19 +1,21 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.3.0/openIdConnect.json", "type": "object", "required": [ "type", "openIdConnectUrl" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "openIdConnect" ] }, - "description": { - "type": "string" - }, "openIdConnectUrl": { "type": "string", "format": "uri" @@ -24,7 +26,5 @@ "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/openIdConnect.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.3.0/openapiSchema_3_0.json b/definitions/2.3.0/openapiSchema_3_0.json index 15de2abc..eeeb9bc6 100644 --- a/definitions/2.3.0/openapiSchema_3_0.json +++ b/definitions/2.3.0/openapiSchema_3_0.json @@ -2,154 +2,26 @@ "$schema": "http://json-schema.org/draft-07/schema#", "$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 + "description": { + "type": "string" }, - "minProperties": { - "type": "integer", - "minimum": 0, - "default": 0 + "deprecated": { + "default": false, + "type": "boolean" }, - "required": { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "uniqueItems": true + "readOnly": { + "default": false, + "type": "boolean" }, - "enum": { - "type": "array", - "items": true, - "minItems": 1, - "uniqueItems": false + "writeOnly": { + "default": false, + "type": "boolean" }, + "default": true, "type": { "type": "string", "enum": [ @@ -161,15 +33,11 @@ "string" ] }, - "not": { - "oneOf": [ - { - "$ref": "#" - }, - { - "$ref": "#/definitions/Reference" - } - ] + "enum": { + "type": "array", + "minItems": 1, + "uniqueItems": false, + "items": true }, "allOf": { "type": "array", @@ -184,7 +52,7 @@ ] } }, - "oneOf": { + "anyOf": { "type": "array", "items": { "oneOf": [ @@ -197,7 +65,7 @@ ] } }, - "anyOf": { + "oneOf": { "type": "array", "items": { "oneOf": [ @@ -210,6 +78,63 @@ ] } }, + "not": { + "oneOf": [ + { + "$ref": "#" + }, + { + "$ref": "#/definitions/Reference" + } + ] + }, + "exclusiveMaximum": { + "default": false, + "type": "boolean" + }, + "maximum": { + "type": "number" + }, + "exclusiveMinimum": { + "default": false, + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "multipleOf": { + "type": "number", + "exclusiveMinimum": 0 + }, + "pattern": { + "type": "string", + "format": "regex" + }, + "format": { + "type": "string" + }, + "maxLength": { + "type": "integer", + "minimum": 0 + }, + "minLength": { + "default": 0, + "type": "integer", + "minimum": 0 + }, + "maxItems": { + "type": "integer", + "minimum": 0 + }, + "minItems": { + "default": 0, + "type": "integer", + "minimum": 0 + }, + "uniqueItems": { + "default": false, + "type": "boolean" + }, "items": { "oneOf": [ { @@ -220,6 +145,23 @@ } ] }, + "required": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "maxProperties": { + "type": "integer", + "minimum": 0 + }, + "minProperties": { + "default": 0, + "type": "integer", + "minimum": 0 + }, "properties": { "type": "object", "additionalProperties": { @@ -234,6 +176,7 @@ } }, "additionalProperties": { + "default": true, "oneOf": [ { "$ref": "#" @@ -244,38 +187,18 @@ { "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 + "nullable": { + "default": false, + "type": "boolean" }, "xml": { "$ref": "#/definitions/XML" @@ -284,5 +207,82 @@ "patternProperties": { "^x-": true }, - "additionalProperties": false -} \ No newline at end of file + "additionalProperties": false, + "definitions": { + "Discriminator": { + "type": "object", + "required": [ + "propertyName" + ], + "properties": { + "mapping": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "propertyName": { + "type": "string" + } + } + }, + "ExternalDocumentation": { + "type": "object", + "required": [ + "url" + ], + "properties": { + "description": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri-reference" + } + }, + "patternProperties": { + "^x-": {} + }, + "additionalProperties": false + }, + "Reference": { + "type": "object", + "required": [ + "$ref" + ], + "patternProperties": { + "^\\$ref$": { + "type": "string", + "format": "uri-reference" + } + } + }, + "XML": { + "type": "object", + "properties": { + "attribute": { + "default": false, + "type": "boolean" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string", + "format": "uri" + }, + "prefix": { + "type": "string" + }, + "wrapped": { + "default": false, + "type": "boolean" + } + }, + "patternProperties": { + "^x-": {} + }, + "additionalProperties": false + } + } +} diff --git a/definitions/2.3.0/operation.json b/definitions/2.3.0/operation.json index 1d6968ae..21d659a0 100644 --- a/definitions/2.3.0/operation.json +++ b/definitions/2.3.0/operation.json @@ -1,12 +1,33 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$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": { + "description": { + "type": "string" + }, + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.3.0/bindingsObject.json" + }, + "externalDocs": { + "$ref": "http://asyncapi.com/definitions/2.3.0/externalDocs.json" + }, + "message": { + "$ref": "http://asyncapi.com/definitions/2.3.0/message.json" + }, + "operationId": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "tags": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "http://asyncapi.com/definitions/2.3.0/tag.json" + } + }, "traits": { "type": "array", "items": { @@ -19,33 +40,12 @@ } ] } - }, - "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" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/operation.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.3.0/operationTrait.json b/definitions/2.3.0/operationTrait.json index 6a008cc7..4291bc04 100644 --- a/definitions/2.3.0/operationTrait.json +++ b/definitions/2.3.0/operationTrait.json @@ -1,24 +1,13 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$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 + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.3.0/bindingsObject.json" }, "externalDocs": { "$ref": "http://asyncapi.com/definitions/2.3.0/externalDocs.json" @@ -26,10 +15,21 @@ "operationId": { "type": "string" }, - "bindings": { - "$ref": "http://asyncapi.com/definitions/2.3.0/bindingsObject.json" + "summary": { + "type": "string" + }, + "tags": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "http://asyncapi.com/definitions/2.3.0/tag.json" + } } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/operationTrait.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.3.0/parameter.json b/definitions/2.3.0/parameter.json index 4c016441..f00ca909 100644 --- a/definitions/2.3.0/parameter.json +++ b/definitions/2.3.0/parameter.json @@ -1,27 +1,27 @@ { - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" - } - }, + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.3.0/parameter.json", "properties": { "description": { - "type": "string", - "description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed." + "description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed.", + "type": "string" }, - "schema": { - "$ref": "http://asyncapi.com/definitions/2.3.0/schema.json" + "$ref": { + "$ref": "http://asyncapi.com/definitions/2.3.0/ReferenceObject.json" }, "location": { - "type": "string", "description": "A runtime expression that specifies the location of the parameter value", + "type": "string", "pattern": "^\\$message\\.(header|payload)#(\\/(([^\\/~])|(~[01]))*)*" }, - "$ref": { - "$ref": "http://asyncapi.com/definitions/2.3.0/ReferenceObject.json" + "schema": { + "$ref": "http://asyncapi.com/definitions/2.3.0/schema.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/parameter.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.3.0/parameters.json b/definitions/2.3.0/parameters.json index 387fec92..29307dcc 100644 --- a/definitions/2.3.0/parameters.json +++ b/definitions/2.3.0/parameters.json @@ -1,4 +1,7 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.3.0/parameters.json", + "description": "JSON objects describing re-usable channel parameters.", "type": "object", "additionalProperties": { "oneOf": [ @@ -9,8 +12,5 @@ "$ref": "http://asyncapi.com/definitions/2.3.0/parameter.json" } ] - }, - "description": "JSON objects describing re-usable channel parameters.", - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/parameters.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.3.0/schema.json b/definitions/2.3.0/schema.json index 43a6cc03..5e9f6b68 100644 --- a/definitions/2.3.0/schema.json +++ b/definitions/2.3.0/schema.json @@ -1,40 +1,15 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$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": {} + "deprecated": { + "default": false, + "type": "boolean" }, "allOf": { "type": "array", @@ -43,14 +18,14 @@ "$ref": "http://asyncapi.com/definitions/2.3.0/schema.json" } }, - "oneOf": { + "anyOf": { "type": "array", "minItems": 1, "items": { "$ref": "http://asyncapi.com/definitions/2.3.0/schema.json" } }, - "anyOf": { + "oneOf": { "type": "array", "minItems": 1, "items": { @@ -60,39 +35,64 @@ "not": { "$ref": "http://asyncapi.com/definitions/2.3.0/schema.json" }, + "contains": { + "$ref": "http://asyncapi.com/definitions/2.3.0/schema.json" + }, + "items": { + "default": {}, + "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" + } + } + ] + }, + "propertyNames": { + "$ref": "http://asyncapi.com/definitions/2.3.0/schema.json" + }, "properties": { + "default": {}, "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.3.0/schema.json" - }, - "default": {} + } }, "patternProperties": { + "default": {}, "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" + "additionalProperties": { + "default": {}, + "anyOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.3.0/schema.json" + }, + { + "type": "boolean" + } + ] }, "discriminator": { "type": "string" }, "externalDocs": { "$ref": "http://asyncapi.com/definitions/2.3.0/externalDocs.json" - }, - "deprecated": { - "type": "boolean", - "default": false + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" } } } - ], - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/schema.json" -} \ No newline at end of file + ] +} diff --git a/definitions/2.3.0/schemas.json b/definitions/2.3.0/schemas.json index a2fc1dbe..1e3727b3 100644 --- a/definitions/2.3.0/schemas.json +++ b/definitions/2.3.0/schemas.json @@ -1,9 +1,9 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.3.0/schemas.json", + "description": "JSON objects describing schemas the API uses.", "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.3.0/schema.json" - }, - "description": "JSON objects describing schemas the API uses.", - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/schemas.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.3.0/server.json b/definitions/2.3.0/server.json index daf2dc8d..1aa15384 100644 --- a/definitions/2.3.0/server.json +++ b/definitions/2.3.0/server.json @@ -1,43 +1,43 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.3.0/server.json", "description": "An object representing a Server.", + "type": "object", "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" }, + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.3.0/bindingsObject.json" + }, "protocol": { - "type": "string", - "description": "The transfer protocol." + "description": "The transfer protocol.", + "type": "string" }, "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" + "url": { + "type": "string" + }, + "variables": { + "$ref": "http://asyncapi.com/definitions/2.3.0/serverVariables.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/server.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.3.0/serverVariable.json b/definitions/2.3.0/serverVariable.json index c9c94f7f..47a73c0a 100644 --- a/definitions/2.3.0/serverVariable.json +++ b/definitions/2.3.0/serverVariable.json @@ -1,33 +1,33 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.3.0/serverVariable.json", "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" - } - }, + "type": "object", "properties": { - "enum": { + "description": { + "type": "string" + }, + "examples": { "type": "array", "items": { "type": "string" - }, - "uniqueItems": true + } }, "default": { "type": "string" }, - "description": { - "type": "string" - }, - "examples": { + "enum": { "type": "array", + "uniqueItems": true, "items": { "type": "string" } } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/serverVariable.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.3.0/serverVariables.json b/definitions/2.3.0/serverVariables.json index c241f677..33cea6d6 100644 --- a/definitions/2.3.0/serverVariables.json +++ b/definitions/2.3.0/serverVariables.json @@ -1,8 +1,8 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.3.0/serverVariables.json", "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.3.0/serverVariable.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/serverVariables.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.3.0/servers.json b/definitions/2.3.0/servers.json index 66dbc8c2..2c1cc74e 100644 --- a/definitions/2.3.0/servers.json +++ b/definitions/2.3.0/servers.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.3.0/servers.json", "description": "An object representing multiple servers.", "type": "object", "additionalProperties": { @@ -10,7 +12,5 @@ "$ref": "http://asyncapi.com/definitions/2.3.0/server.json" } ] - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/servers.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.3.0/specificationExtension.json b/definitions/2.3.0/specificationExtension.json index 10569cde..299ba471 100644 --- a/definitions/2.3.0/specificationExtension.json +++ b/definitions/2.3.0/specificationExtension.json @@ -1,7 +1,7 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json", "description": "Any property starting with x- is valid.", - "additionalProperties": true, "additionalItems": true, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" -} \ No newline at end of file + "additionalProperties": true +} diff --git a/definitions/2.3.0/symmetricEncryption.json b/definitions/2.3.0/symmetricEncryption.json index 08e59d9e..737ce020 100644 --- a/definitions/2.3.0/symmetricEncryption.json +++ b/definitions/2.3.0/symmetricEncryption.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.3.0/symmetricEncryption.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "symmetricEncryption" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,7 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/symmetricEncryption.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.3.0/tag.json b/definitions/2.3.0/tag.json index 527d558a..10a5530a 100644 --- a/definitions/2.3.0/tag.json +++ b/definitions/2.3.0/tag.json @@ -1,18 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$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" + }, + "name": { + "type": "string" } }, "patternProperties": { @@ -20,6 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/tag.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.3.0/userPassword.json b/definitions/2.3.0/userPassword.json index c065556d..1dbfde87 100644 --- a/definitions/2.3.0/userPassword.json +++ b/definitions/2.3.0/userPassword.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.3.0/userPassword.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "userPassword" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,7 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.3.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.3.0/userPassword.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.4.0/APIKeyHTTPSecurityScheme.json b/definitions/2.4.0/APIKeyHTTPSecurityScheme.json index 30f59a9e..0626c5c9 100644 --- a/definitions/2.4.0/APIKeyHTTPSecurityScheme.json +++ b/definitions/2.4.0/APIKeyHTTPSecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.4.0/APIKeyHTTPSecurityScheme.json", "type": "object", "required": [ "type", @@ -6,15 +8,15 @@ "in" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "httpApiKey" ] }, - "name": { - "type": "string" - }, "in": { "type": "string", "enum": [ @@ -23,7 +25,7 @@ "cookie" ] }, - "description": { + "name": { "type": "string" } }, @@ -32,7 +34,5 @@ "$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/APIKeyHTTPSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.4.0/BearerHTTPSecurityScheme.json b/definitions/2.4.0/BearerHTTPSecurityScheme.json index 6252b964..0a19eb06 100644 --- a/definitions/2.4.0/BearerHTTPSecurityScheme.json +++ b/definitions/2.4.0/BearerHTTPSecurityScheme.json @@ -1,27 +1,29 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.4.0/BearerHTTPSecurityScheme.json", "type": "object", "required": [ "type", "scheme" ], "properties": { - "scheme": { + "description": { + "type": "string" + }, + "type": { "type": "string", "enum": [ - "bearer" + "http" ] }, "bearerFormat": { "type": "string" }, - "type": { + "scheme": { "type": "string", "enum": [ - "http" + "bearer" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -29,7 +31,5 @@ "$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/BearerHTTPSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.4.0/HTTPSecurityScheme.json b/definitions/2.4.0/HTTPSecurityScheme.json index bddef942..15e04837 100644 --- a/definitions/2.4.0/HTTPSecurityScheme.json +++ b/definitions/2.4.0/HTTPSecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.4.0/HTTPSecurityScheme.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/2.4.0/NonBearerHTTPSecurityScheme.json" @@ -9,7 +11,5 @@ { "$ref": "http://asyncapi.com/definitions/2.4.0/APIKeyHTTPSecurityScheme.json" } - ], - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/HTTPSecurityScheme.json" -} \ No newline at end of file + ] +} diff --git a/definitions/2.4.0/NonBearerHTTPSecurityScheme.json b/definitions/2.4.0/NonBearerHTTPSecurityScheme.json index d6a8ce69..81c36c45 100644 --- a/definitions/2.4.0/NonBearerHTTPSecurityScheme.json +++ b/definitions/2.4.0/NonBearerHTTPSecurityScheme.json @@ -1,4 +1,7 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.4.0/NonBearerHTTPSecurityScheme.json", + "type": "object", "not": { "type": "object", "properties": { @@ -10,15 +13,11 @@ } } }, - "type": "object", "required": [ "scheme", "type" ], "properties": { - "scheme": { - "type": "string" - }, "description": { "type": "string" }, @@ -27,6 +26,9 @@ "enum": [ "http" ] + }, + "scheme": { + "type": "string" } }, "patternProperties": { @@ -34,7 +36,5 @@ "$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/NonBearerHTTPSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.4.0/Reference.json b/definitions/2.4.0/Reference.json index a9eed13d..4e7a1faa 100644 --- a/definitions/2.4.0/Reference.json +++ b/definitions/2.4.0/Reference.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.4.0/Reference.json", "type": "object", "required": [ "$ref" @@ -7,7 +9,5 @@ "$ref": { "$ref": "http://asyncapi.com/definitions/2.4.0/ReferenceObject.json" } - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/Reference.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.4.0/ReferenceObject.json b/definitions/2.4.0/ReferenceObject.json index 9915aa63..e0e4aa71 100644 --- a/definitions/2.4.0/ReferenceObject.json +++ b/definitions/2.4.0/ReferenceObject.json @@ -1,6 +1,6 @@ { - "type": "string", - "format": "uri-reference", "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/ReferenceObject.json" -} \ No newline at end of file + "$id": "http://asyncapi.com/definitions/2.4.0/ReferenceObject.json", + "type": "string", + "format": "uri-reference" +} diff --git a/definitions/2.4.0/SaslGssapiSecurityScheme.json b/definitions/2.4.0/SaslGssapiSecurityScheme.json index 601832f9..9eabb8cf 100644 --- a/definitions/2.4.0/SaslGssapiSecurityScheme.json +++ b/definitions/2.4.0/SaslGssapiSecurityScheme.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.4.0/SaslGssapiSecurityScheme.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "gssapi" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,7 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/SaslGssapiSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.4.0/SaslPlainSecurityScheme.json b/definitions/2.4.0/SaslPlainSecurityScheme.json index eb19a115..21bd8a8e 100644 --- a/definitions/2.4.0/SaslPlainSecurityScheme.json +++ b/definitions/2.4.0/SaslPlainSecurityScheme.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.4.0/SaslPlainSecurityScheme.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "plain" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,7 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/SaslPlainSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.4.0/SaslScramSecurityScheme.json b/definitions/2.4.0/SaslScramSecurityScheme.json index acc360e5..c78bdcdb 100644 --- a/definitions/2.4.0/SaslScramSecurityScheme.json +++ b/definitions/2.4.0/SaslScramSecurityScheme.json @@ -1,18 +1,20 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.4.0/SaslScramSecurityScheme.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "scramSha256", "scramSha512" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -20,7 +22,5 @@ "$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/SaslScramSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.4.0/SaslSecurityScheme.json b/definitions/2.4.0/SaslSecurityScheme.json index 2e9780f8..42af9e55 100644 --- a/definitions/2.4.0/SaslSecurityScheme.json +++ b/definitions/2.4.0/SaslSecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.4.0/SaslSecurityScheme.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/2.4.0/SaslPlainSecurityScheme.json" @@ -9,7 +11,5 @@ { "$ref": "http://asyncapi.com/definitions/2.4.0/SaslGssapiSecurityScheme.json" } - ], - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/SaslSecurityScheme.json" -} \ No newline at end of file + ] +} diff --git a/definitions/2.4.0/SecurityRequirement.json b/definitions/2.4.0/SecurityRequirement.json index b9abda82..5b4f9af4 100644 --- a/definitions/2.4.0/SecurityRequirement.json +++ b/definitions/2.4.0/SecurityRequirement.json @@ -1,12 +1,12 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.4.0/SecurityRequirement.json", "type": "object", "additionalProperties": { "type": "array", + "uniqueItems": true, "items": { "type": "string" - }, - "uniqueItems": true - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/SecurityRequirement.json" -} \ No newline at end of file + } + } +} diff --git a/definitions/2.4.0/SecurityScheme.json b/definitions/2.4.0/SecurityScheme.json index 09816ba2..3c075bbd 100644 --- a/definitions/2.4.0/SecurityScheme.json +++ b/definitions/2.4.0/SecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.4.0/SecurityScheme.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/2.4.0/userPassword.json" @@ -27,7 +29,5 @@ { "$ref": "http://asyncapi.com/definitions/2.4.0/SaslSecurityScheme.json" } - ], - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/SecurityScheme.json" -} \ No newline at end of file + ] +} diff --git a/definitions/2.4.0/X509.json b/definitions/2.4.0/X509.json index 12ebc489..ada44fa7 100644 --- a/definitions/2.4.0/X509.json +++ b/definitions/2.4.0/X509.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.4.0/X509.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "X509" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,7 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/X509.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.4.0/apiKey.json b/definitions/2.4.0/apiKey.json index 82a7560f..b6b3b99c 100644 --- a/definitions/2.4.0/apiKey.json +++ b/definitions/2.4.0/apiKey.json @@ -1,10 +1,15 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.4.0/apiKey.json", "type": "object", "required": [ "type", "in" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ @@ -17,9 +22,6 @@ "user", "password" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -27,7 +29,5 @@ "$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/apiKey.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.4.0/asymmetricEncryption.json b/definitions/2.4.0/asymmetricEncryption.json index 9ae6ab55..91dc7df7 100644 --- a/definitions/2.4.0/asymmetricEncryption.json +++ b/definitions/2.4.0/asymmetricEncryption.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.4.0/asymmetricEncryption.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "asymmetricEncryption" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,7 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/asymmetricEncryption.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.4.0/asyncapi.json b/definitions/2.4.0/asyncapi.json index 26b0e3bc..ec442bbe 100644 --- a/definitions/2.4.0/asyncapi.json +++ b/definitions/2.4.0/asyncapi.json @@ -1,56 +1,56 @@ { - "title": "AsyncAPI 2.4.0 schema.", "$schema": "http://json-schema.org/draft-07/schema#", "$id": "http://asyncapi.com/definitions/2.4.0/asyncapi.json", + "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": { + "id": { + "description": "A unique id representing the application.", + "type": "string", + "format": "uri" + }, "asyncapi": { + "description": "The AsyncAPI specification version of this document.", "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" + "channels": { + "$ref": "http://asyncapi.com/definitions/2.4.0/channels.json" }, - "servers": { - "$ref": "http://asyncapi.com/definitions/2.4.0/servers.json" + "components": { + "$ref": "http://asyncapi.com/definitions/2.4.0/components.json" }, "defaultContentType": { "type": "string" }, - "channels": { - "$ref": "http://asyncapi.com/definitions/2.4.0/channels.json" + "externalDocs": { + "$ref": "http://asyncapi.com/definitions/2.4.0/externalDocs.json" }, - "components": { - "$ref": "http://asyncapi.com/definitions/2.4.0/components.json" + "info": { + "$ref": "http://asyncapi.com/definitions/2.4.0/info.json" + }, + "servers": { + "$ref": "http://asyncapi.com/definitions/2.4.0/servers.json" }, "tags": { "type": "array", + "uniqueItems": true, "items": { "$ref": "http://asyncapi.com/definitions/2.4.0/tag.json" - }, - "uniqueItems": true - }, - "externalDocs": { - "$ref": "http://asyncapi.com/definitions/2.4.0/externalDocs.json" + } } - } -} \ No newline at end of file + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.4.0/avroSchema_v1.json b/definitions/2.4.0/avroSchema_v1.json index 19394659..fe8690a6 100644 --- a/definitions/2.4.0/avroSchema_v1.json +++ b/definitions/2.4.0/avroSchema_v1.json @@ -1,220 +1,131 @@ { "$schema": "http://json-schema.org/draft-07/schema#", "$id": "http://asyncapi.com/definitions/2.4.0/avroSchema_v1.json", + "title": "Avro Schema Definition", + "description": "Json-Schema definition for Avro AVSC files.", + "oneOf": [ + { + "$ref": "#/definitions/avroSchema" + } + ], "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.", + "avroArray": { + "title": "Array", + "description": "An array", "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", + "type", + "items" + ], "properties": { - "name": { - "$ref": "#/definitions/name" - }, "type": { - "$ref": "#/definitions/types" - }, - "doc": { - "type": "string" + "type": "string", + "const": "array" }, - "default": true, - "order": { - "enum": [ - "ascending", - "descending", - "ignore" - ] + "items": { + "$ref": "#/definitions/types" }, "aliases": { "type": "array", "items": { "$ref": "#/definitions/name" } - } - }, - "required": [ - "name", - "type" - ] - }, - "avroRecord": { - "title": "Record", - "description": "A Record", - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "record" + }, + "doc": { + "type": "string" }, "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", + "required": [ + "type", + "name", + "symbols" + ], "properties": { "type": { "type": "string", "const": "enum" }, + "aliases": { + "type": "array", + "items": { + "$ref": "#/definitions/name" + } + }, + "doc": { + "type": "string" + }, "name": { "$ref": "#/definitions/name" }, "namespace": { "$ref": "#/definitions/namespace" }, - "doc": { - "type": "string" - }, - "aliases": { + "symbols": { "type": "array", "items": { "$ref": "#/definitions/name" } + } + } + }, + "avroField": { + "title": "Field", + "description": "A field within a Record", + "type": "object", + "required": [ + "name", + "type" + ], + "properties": { + "default": true, + "type": { + "$ref": "#/definitions/types" }, - "symbols": { + "aliases": { "type": "array", "items": { "$ref": "#/definitions/name" } + }, + "doc": { + "type": "string" + }, + "name": { + "$ref": "#/definitions/name" + }, + "order": { + "enum": [ + "ascending", + "descending", + "ignore" + ] } - }, + } + }, + "avroFixed": { + "title": "Fixed", + "description": "A fixed sized array of bytes", + "type": "object", "required": [ "type", "name", - "symbols" - ] - }, - "avroArray": { - "title": "Array", - "description": "An array", - "type": "object", + "size" + ], "properties": { "type": { "type": "string", - "const": "array" - }, - "name": { - "$ref": "#/definitions/name" - }, - "namespace": { - "$ref": "#/definitions/namespace" - }, - "doc": { - "type": "string" + "const": "fixed" }, "aliases": { "type": "array", @@ -222,82 +133,117 @@ "$ref": "#/definitions/name" } }, - "items": { - "$ref": "#/definitions/types" + "doc": { + "type": "string" + }, + "name": { + "$ref": "#/definitions/name" + }, + "namespace": { + "$ref": "#/definitions/namespace" + }, + "size": { + "type": "number" } - }, - "required": [ - "type", - "items" - ] + } }, "avroMap": { "title": "Map", "description": "A map of values", "type": "object", + "required": [ + "type", + "values" + ], "properties": { "type": { "type": "string", "const": "map" }, - "name": { - "$ref": "#/definitions/name" - }, - "namespace": { - "$ref": "#/definitions/namespace" - }, - "doc": { - "type": "string" - }, "aliases": { "type": "array", "items": { "$ref": "#/definitions/name" } }, + "doc": { + "type": "string" + }, + "name": { + "$ref": "#/definitions/name" + }, + "namespace": { + "$ref": "#/definitions/namespace" + }, "values": { "$ref": "#/definitions/types" } - }, - "required": [ - "type", - "values" - ] + } }, - "avroFixed": { - "title": "Fixed", - "description": "A fixed sized array of bytes", + "avroRecord": { + "title": "Record", + "description": "A Record", "type": "object", + "required": [ + "type", + "name", + "fields" + ], "properties": { "type": { "type": "string", - "const": "fixed" - }, - "name": { - "$ref": "#/definitions/name" + "const": "record" }, - "namespace": { - "$ref": "#/definitions/namespace" + "aliases": { + "type": "array", + "items": { + "$ref": "#/definitions/name" + } }, "doc": { "type": "string" }, - "aliases": { + "fields": { "type": "array", "items": { - "$ref": "#/definitions/name" + "$ref": "#/definitions/avroField" } }, - "size": { - "type": "number" + "name": { + "$ref": "#/definitions/name" + }, + "namespace": { + "$ref": "#/definitions/namespace" + } + } + }, + "avroSchema": { + "title": "Avro Schema", + "description": "Root Schema", + "oneOf": [ + { + "$ref": "#/definitions/types" } - }, - "required": [ - "type", - "name", - "size" ] }, + "avroUnion": { + "title": "Union", + "description": "A Union of types", + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/definitions/avroSchema" + } + }, + "customTypeReference": { + "title": "Custom Type", + "description": "Reference to a ComplexType", + "type": "string", + "not": { + "$ref": "#/definitions/primitiveType" + }, + "pattern": "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$" + }, "name": { "type": "string", "pattern": "^[A-Za-z_][A-Za-z0-9_]*$" @@ -305,13 +251,67 @@ "namespace": { "type": "string", "pattern": "^([A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*)*$" + }, + "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", + "required": [ + "type" + ], + "properties": { + "type": { + "$ref": "#/definitions/primitiveType" + } + } + }, + "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" + } + ] } - }, - "description": "Json-Schema definition for Avro AVSC files.", - "oneOf": [ - { - "$ref": "#/definitions/avroSchema" - } - ], - "title": "Avro Schema Definition" -} \ No newline at end of file + } +} diff --git a/definitions/2.4.0/bindingsObject.json b/definitions/2.4.0/bindingsObject.json index 5edfb100..c6c8a29d 100644 --- a/definitions/2.4.0/bindingsObject.json +++ b/definitions/2.4.0/bindingsObject.json @@ -1,24 +1,24 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.4.0/bindingsObject.json", "type": "object", - "additionalProperties": true, "properties": { - "http": {}, - "ws": {}, "amqp": {}, "amqp1": {}, + "anypointmq": {}, + "http": {}, + "ibmmq": {}, + "jms": {}, + "kafka": {}, "mqtt": {}, "mqtt5": {}, - "kafka": {}, - "anypointmq": {}, "nats": {}, - "jms": {}, + "redis": {}, "sns": {}, + "solace": {}, "sqs": {}, "stomp": {}, - "redis": {}, - "ibmmq": {}, - "solace": {} + "ws": {} }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/bindingsObject.json" -} \ No newline at end of file + "additionalProperties": true +} diff --git a/definitions/2.4.0/channelItem.json b/definitions/2.4.0/channelItem.json index d57926df..aa58d57e 100644 --- a/definitions/2.4.0/channelItem.json +++ b/definitions/2.4.0/channelItem.json @@ -1,44 +1,44 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$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": { + "description": { + "description": "A description of the channel.", + "type": "string" + }, + "deprecated": { + "default": false, + "type": "boolean" + }, "$ref": { "$ref": "http://asyncapi.com/definitions/2.4.0/ReferenceObject.json" }, + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.4.0/bindingsObject.json" + }, "parameters": { "$ref": "http://asyncapi.com/definitions/2.4.0/parameters.json" }, - "description": { - "type": "string", - "description": "A description of the channel." + "publish": { + "$ref": "http://asyncapi.com/definitions/2.4.0/operation.json" }, "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.", + "type": "array", + "uniqueItems": true, "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" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/channelItem.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.4.0/channels.json b/definitions/2.4.0/channels.json index 771812dd..89daa24e 100644 --- a/definitions/2.4.0/channels.json +++ b/definitions/2.4.0/channels.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.4.0/channels.json", "type": "object", "propertyNames": { "type": "string", @@ -7,7 +9,5 @@ }, "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.4.0/channelItem.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/channels.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.4.0/components.json b/definitions/2.4.0/components.json index cf3000e0..2f556537 100644 --- a/definitions/2.4.0/components.json +++ b/definitions/2.4.0/components.json @@ -1,45 +1,17 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.4.0/components.json", "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.4.0/specificationExtension.json" - } - }, + "type": "object", "properties": { - "schemas": { - "$ref": "http://asyncapi.com/definitions/2.4.0/schemas.json" - }, - "servers": { - "$ref": "http://asyncapi.com/definitions/2.4.0/servers.json" - }, - "channels": { - "$ref": "http://asyncapi.com/definitions/2.4.0/channels.json" - }, - "serverVariables": { - "$ref": "http://asyncapi.com/definitions/2.4.0/serverVariables.json" - }, - "messages": { - "$ref": "http://asyncapi.com/definitions/2.4.0/messages.json" - }, - "securitySchemes": { + "channelBindings": { "type": "object", - "patternProperties": { - "^[\\w\\d\\.\\-_]+$": { - "oneOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.4.0/Reference.json" - }, - { - "$ref": "http://asyncapi.com/definitions/2.4.0/SecurityScheme.json" - } - ] - } + "additionalProperties": { + "$ref": "http://asyncapi.com/definitions/2.4.0/bindingsObject.json" } }, - "parameters": { - "$ref": "http://asyncapi.com/definitions/2.4.0/parameters.json" + "channels": { + "$ref": "http://asyncapi.com/definitions/2.4.0/channels.json" }, "correlationIds": { "type": "object", @@ -56,10 +28,10 @@ } } }, - "operationTraits": { + "messageBindings": { "type": "object", "additionalProperties": { - "$ref": "http://asyncapi.com/definitions/2.4.0/operationTrait.json" + "$ref": "http://asyncapi.com/definitions/2.4.0/bindingsObject.json" } }, "messageTraits": { @@ -68,31 +40,59 @@ "$ref": "http://asyncapi.com/definitions/2.4.0/messageTrait.json" } }, - "serverBindings": { + "messages": { + "$ref": "http://asyncapi.com/definitions/2.4.0/messages.json" + }, + "operationBindings": { "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.4.0/bindingsObject.json" } }, - "channelBindings": { + "operationTraits": { "type": "object", "additionalProperties": { - "$ref": "http://asyncapi.com/definitions/2.4.0/bindingsObject.json" + "$ref": "http://asyncapi.com/definitions/2.4.0/operationTrait.json" } }, - "operationBindings": { + "parameters": { + "$ref": "http://asyncapi.com/definitions/2.4.0/parameters.json" + }, + "schemas": { + "$ref": "http://asyncapi.com/definitions/2.4.0/schemas.json" + }, + "securitySchemes": { "type": "object", - "additionalProperties": { - "$ref": "http://asyncapi.com/definitions/2.4.0/bindingsObject.json" + "patternProperties": { + "^[\\w\\d\\.\\-_]+$": { + "oneOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.4.0/Reference.json" + }, + { + "$ref": "http://asyncapi.com/definitions/2.4.0/SecurityScheme.json" + } + ] + } } }, - "messageBindings": { + "serverBindings": { "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.4.0/bindingsObject.json" } + }, + "serverVariables": { + "$ref": "http://asyncapi.com/definitions/2.4.0/serverVariables.json" + }, + "servers": { + "$ref": "http://asyncapi.com/definitions/2.4.0/servers.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/components.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.4.0/contact.json b/definitions/2.4.0/contact.json index 91e8c071..12b79418 100644 --- a/definitions/2.4.0/contact.json +++ b/definitions/2.4.0/contact.json @@ -1,21 +1,22 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.4.0/contact.json", "description": "Contact information for the owners of the API.", - "additionalProperties": false, + "type": "object", "properties": { - "name": { + "email": { + "description": "The email address of the contact person/organization.", "type": "string", - "description": "The identifying name of the contact person/organization." + "format": "email" + }, + "name": { + "description": "The identifying name of the contact person/organization.", + "type": "string" }, "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" + "format": "uri" } }, "patternProperties": { @@ -23,6 +24,5 @@ "$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/contact.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.4.0/correlationId.json b/definitions/2.4.0/correlationId.json index 98abf22e..77364b8e 100644 --- a/definitions/2.4.0/correlationId.json +++ b/definitions/2.4.0/correlationId.json @@ -1,25 +1,25 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$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." + "description": "A optional description of the correlation ID. GitHub Flavored Markdown is allowed.", + "type": "string" }, "location": { - "type": "string", "description": "A runtime expression that specifies the location of the correlation ID", + "type": "string", "pattern": "^\\$message\\.(header|payload)#(\\/(([^\\/~])|(~[01]))*)*" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/correlationId.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.4.0/external.json b/definitions/2.4.0/external.json index 4442ee2e..83b1249f 100644 --- a/definitions/2.4.0/external.json +++ b/definitions/2.4.0/external.json @@ -1,5 +1,5 @@ { - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/http://something.example.com/schemas/external.json", - "type": "string" - } \ No newline at end of file + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.4.0/http://something.example.com/schemas/external.json", + "type": "string" +} diff --git a/definitions/2.4.0/externalDocs.json b/definitions/2.4.0/externalDocs.json index c3eca2de..003fc7b5 100644 --- a/definitions/2.4.0/externalDocs.json +++ b/definitions/2.4.0/externalDocs.json @@ -1,7 +1,8 @@ { - "type": "object", - "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.4.0/externalDocs.json", "description": "information about external documentation", + "type": "object", "required": [ "url" ], @@ -19,6 +20,5 @@ "$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/externalDocs.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.4.0/info.json b/definitions/2.4.0/info.json index 956f9eb3..aa8e9563 100644 --- a/definitions/2.4.0/info.json +++ b/definitions/2.4.0/info.json @@ -1,41 +1,41 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.4.0/info.json", "description": "General information about the API.", + "type": "object", "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": "A unique and precise title of the API.", + "type": "string" }, "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" + "description": "A longer description of the API. Should be different from the title. CommonMark is allowed.", + "type": "string" }, "contact": { "$ref": "http://asyncapi.com/definitions/2.4.0/contact.json" }, "license": { "$ref": "http://asyncapi.com/definitions/2.4.0/license.json" + }, + "termsOfService": { + "description": "A URL to the Terms of Service for the API. MUST be in the format of a URL.", + "type": "string", + "format": "uri" + }, + "version": { + "description": "A semantic version number of the API.", + "type": "string" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/info.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.4.0/license.json b/definitions/2.4.0/license.json index 1590ba06..13779471 100644 --- a/definitions/2.4.0/license.json +++ b/definitions/2.4.0/license.json @@ -1,17 +1,18 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$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." + "description": "The name of the license type. It's encouraged to use an OSI compatible license.", + "type": "string" }, "url": { - "type": "string", "description": "The URL pointing to the license.", + "type": "string", "format": "uri" } }, @@ -20,6 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/license.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.4.0/message.json b/definitions/2.4.0/message.json index 458996dc..0a59f8d8 100644 --- a/definitions/2.4.0/message.json +++ b/definitions/2.4.0/message.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.4.0/message.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/2.4.0/Reference.json" @@ -10,7 +12,6 @@ "required": [ "oneOf" ], - "additionalProperties": false, "properties": { "oneOf": { "type": "array", @@ -18,131 +19,11 @@ "$ref": "http://asyncapi.com/definitions/2.4.0/message.json" } } - } + }, + "additionalProperties": false }, { "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": { @@ -225,8 +106,8 @@ "properties": { "schemaFormat": { "enum": [ - "application/vnd.oai.openapi;version=3.0.0", - "application/vnd.oai.openapi+json;version=3.0.0", + "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" ] } @@ -263,11 +144,130 @@ } } } - ] + ], + "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": { + "type": "array", + "items": { + "type": "object", + "anyOf": [ + { + "required": [ + "payload" + ] + }, + { + "required": [ + "headers" + ] + } + ], + "properties": { + "headers": { + "type": "object" + }, + "name": { + "description": "Machine readable name of the message example.", + "type": "string" + }, + "payload": {}, + "summary": { + "description": "A brief summary of the message example.", + "type": "string" + } + }, + "additionalProperties": false + } + }, + "deprecated": { + "default": false, + "type": "boolean" + }, + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.4.0/bindingsObject.json" + }, + "contentType": { + "type": "string" + }, + "correlationId": { + "oneOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.4.0/Reference.json" + }, + { + "$ref": "http://asyncapi.com/definitions/2.4.0/correlationId.json" + } + ] + }, + "externalDocs": { + "$ref": "http://asyncapi.com/definitions/2.4.0/externalDocs.json" + }, + "headers": { + "allOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.4.0/schema.json" + }, + { + "properties": { + "type": { + "const": "object" + } + } + } + ] + }, + "messageId": { + "type": "string" + }, + "name": { + "description": "Name of the message.", + "type": "string" + }, + "payload": {}, + "schemaFormat": { + "type": "string" + }, + "summary": { + "description": "A brief summary of the message.", + "type": "string" + }, + "tags": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "http://asyncapi.com/definitions/2.4.0/tag.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" + } + ] + } + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json" + } + }, + "additionalProperties": false } ] } - ], - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/message.json" -} \ No newline at end of file + ] +} diff --git a/definitions/2.4.0/messageTrait.json b/definitions/2.4.0/messageTrait.json index c23a5e0c..4446adca 100644 --- a/definitions/2.4.0/messageTrait.json +++ b/definitions/2.4.0/messageTrait.json @@ -1,18 +1,45 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$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": { + "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": { + "type": "array", + "items": { + "type": "object" + } + }, + "deprecated": { + "default": false, + "type": "boolean" + }, + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.4.0/bindingsObject.json" + }, "contentType": { "type": "string" }, + "correlationId": { + "oneOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.4.0/Reference.json" + }, + { + "$ref": "http://asyncapi.com/definitions/2.4.0/correlationId.json" + } + ] + }, + "externalDocs": { + "$ref": "http://asyncapi.com/definitions/2.4.0/externalDocs.json" + }, "headers": { "allOf": [ { @@ -30,56 +57,29 @@ "messageId": { "type": "string" }, - "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." + "description": "Name of the message.", + "type": "string" }, - "externalDocs": { - "$ref": "http://asyncapi.com/definitions/2.4.0/externalDocs.json" + "schemaFormat": { + "type": "string" }, - "deprecated": { - "type": "boolean", - "default": false + "summary": { + "description": "A brief summary of the message.", + "type": "string" }, - "examples": { + "tags": { "type": "array", + "uniqueItems": true, "items": { - "type": "object" + "$ref": "http://asyncapi.com/definitions/2.4.0/tag.json" } - }, - "bindings": { - "$ref": "http://asyncapi.com/definitions/2.4.0/bindingsObject.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/messageTrait.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.4.0/messages.json b/definitions/2.4.0/messages.json index 2a19233c..d6e3f0e2 100644 --- a/definitions/2.4.0/messages.json +++ b/definitions/2.4.0/messages.json @@ -1,9 +1,9 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.4.0/messages.json", + "description": "JSON objects describing the messages being consumed and produced by the API.", "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.4.0/message.json" - }, - "description": "JSON objects describing the messages being consumed and produced by the API.", - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/messages.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.4.0/oauth2Flow.json b/definitions/2.4.0/oauth2Flow.json index 3fec859e..68822792 100644 --- a/definitions/2.4.0/oauth2Flow.json +++ b/definitions/2.4.0/oauth2Flow.json @@ -1,20 +1,22 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.4.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.4.0/oauth2Scopes.json" + }, + "tokenUrl": { + "type": "string", + "format": "uri" } }, "patternProperties": { @@ -22,7 +24,5 @@ "$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/oauth2Flow.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.4.0/oauth2Flows.json b/definitions/2.4.0/oauth2Flows.json index 7eabd859..7a0cf7c3 100644 --- a/definitions/2.4.0/oauth2Flows.json +++ b/definitions/2.4.0/oauth2Flows.json @@ -1,23 +1,25 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.4.0/oauth2Flows.json", "type": "object", "required": [ "type", "flows" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "oauth2" ] }, - "description": { - "type": "string" - }, "flows": { "type": "object", "properties": { - "implicit": { + "authorizationCode": { "allOf": [ { "$ref": "http://asyncapi.com/definitions/2.4.0/oauth2Flow.json" @@ -25,19 +27,13 @@ { "required": [ "authorizationUrl", + "tokenUrl", "scopes" ] - }, - { - "not": { - "required": [ - "tokenUrl" - ] - } } ] }, - "password": { + "clientCredentials": { "allOf": [ { "$ref": "http://asyncapi.com/definitions/2.4.0/oauth2Flow.json" @@ -57,37 +53,43 @@ } ] }, - "clientCredentials": { + "implicit": { "allOf": [ { "$ref": "http://asyncapi.com/definitions/2.4.0/oauth2Flow.json" }, { "required": [ - "tokenUrl", + "authorizationUrl", "scopes" ] }, { "not": { "required": [ - "authorizationUrl" + "tokenUrl" ] } } ] }, - "authorizationCode": { + "password": { "allOf": [ { "$ref": "http://asyncapi.com/definitions/2.4.0/oauth2Flow.json" }, { "required": [ - "authorizationUrl", "tokenUrl", "scopes" ] + }, + { + "not": { + "required": [ + "authorizationUrl" + ] + } } ] } @@ -99,7 +101,5 @@ "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json" } - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/oauth2Flows.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.4.0/oauth2Scopes.json b/definitions/2.4.0/oauth2Scopes.json index 8e34e058..040fb334 100644 --- a/definitions/2.4.0/oauth2Scopes.json +++ b/definitions/2.4.0/oauth2Scopes.json @@ -1,8 +1,8 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.4.0/oauth2Scopes.json", "type": "object", "additionalProperties": { "type": "string" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/oauth2Scopes.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.4.0/openIdConnect.json b/definitions/2.4.0/openIdConnect.json index 2a810a13..fa312b77 100644 --- a/definitions/2.4.0/openIdConnect.json +++ b/definitions/2.4.0/openIdConnect.json @@ -1,19 +1,21 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.4.0/openIdConnect.json", "type": "object", "required": [ "type", "openIdConnectUrl" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "openIdConnect" ] }, - "description": { - "type": "string" - }, "openIdConnectUrl": { "type": "string", "format": "uri" @@ -24,7 +26,5 @@ "$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/openIdConnect.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.4.0/openapiSchema_3_0.json b/definitions/2.4.0/openapiSchema_3_0.json index ef4b91f4..39b897f5 100644 --- a/definitions/2.4.0/openapiSchema_3_0.json +++ b/definitions/2.4.0/openapiSchema_3_0.json @@ -2,154 +2,26 @@ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "http://asyncapi.com/definitions/2.4.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 + "description": { + "type": "string" }, - "minProperties": { - "type": "integer", - "minimum": 0, - "default": 0 + "deprecated": { + "default": false, + "type": "boolean" }, - "required": { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "uniqueItems": true + "readOnly": { + "default": false, + "type": "boolean" }, - "enum": { - "type": "array", - "items": true, - "minItems": 1, - "uniqueItems": false + "writeOnly": { + "default": false, + "type": "boolean" }, + "default": true, "type": { "type": "string", "enum": [ @@ -161,15 +33,11 @@ "string" ] }, - "not": { - "oneOf": [ - { - "$ref": "#" - }, - { - "$ref": "#/definitions/Reference" - } - ] + "enum": { + "type": "array", + "minItems": 1, + "uniqueItems": false, + "items": true }, "allOf": { "type": "array", @@ -184,7 +52,7 @@ ] } }, - "oneOf": { + "anyOf": { "type": "array", "items": { "oneOf": [ @@ -197,7 +65,7 @@ ] } }, - "anyOf": { + "oneOf": { "type": "array", "items": { "oneOf": [ @@ -210,6 +78,63 @@ ] } }, + "not": { + "oneOf": [ + { + "$ref": "#" + }, + { + "$ref": "#/definitions/Reference" + } + ] + }, + "exclusiveMaximum": { + "default": false, + "type": "boolean" + }, + "maximum": { + "type": "number" + }, + "exclusiveMinimum": { + "default": false, + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "multipleOf": { + "type": "number", + "exclusiveMinimum": 0 + }, + "pattern": { + "type": "string", + "format": "regex" + }, + "format": { + "type": "string" + }, + "maxLength": { + "type": "integer", + "minimum": 0 + }, + "minLength": { + "default": 0, + "type": "integer", + "minimum": 0 + }, + "maxItems": { + "type": "integer", + "minimum": 0 + }, + "minItems": { + "default": 0, + "type": "integer", + "minimum": 0 + }, + "uniqueItems": { + "default": false, + "type": "boolean" + }, "items": { "oneOf": [ { @@ -220,6 +145,23 @@ } ] }, + "required": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "maxProperties": { + "type": "integer", + "minimum": 0 + }, + "minProperties": { + "default": 0, + "type": "integer", + "minimum": 0 + }, "properties": { "type": "object", "additionalProperties": { @@ -234,6 +176,7 @@ } }, "additionalProperties": { + "default": true, "oneOf": [ { "$ref": "#" @@ -244,38 +187,18 @@ { "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 + "nullable": { + "default": false, + "type": "boolean" }, "xml": { "$ref": "#/definitions/XML" @@ -284,5 +207,82 @@ "patternProperties": { "^x-": true }, - "additionalProperties": false -} \ No newline at end of file + "additionalProperties": false, + "definitions": { + "Discriminator": { + "type": "object", + "required": [ + "propertyName" + ], + "properties": { + "mapping": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "propertyName": { + "type": "string" + } + } + }, + "ExternalDocumentation": { + "type": "object", + "required": [ + "url" + ], + "properties": { + "description": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri-reference" + } + }, + "patternProperties": { + "^x-": {} + }, + "additionalProperties": false + }, + "Reference": { + "type": "object", + "required": [ + "$ref" + ], + "patternProperties": { + "^\\$ref$": { + "type": "string", + "format": "uri-reference" + } + } + }, + "XML": { + "type": "object", + "properties": { + "attribute": { + "default": false, + "type": "boolean" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string", + "format": "uri" + }, + "prefix": { + "type": "string" + }, + "wrapped": { + "default": false, + "type": "boolean" + } + }, + "patternProperties": { + "^x-": {} + }, + "additionalProperties": false + } + } +} diff --git a/definitions/2.4.0/operation.json b/definitions/2.4.0/operation.json index 3613af9e..9c0a8a16 100644 --- a/definitions/2.4.0/operation.json +++ b/definitions/2.4.0/operation.json @@ -1,29 +1,21 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$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": { + "description": { "type": "string" }, - "description": { + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.4.0/bindingsObject.json" + }, + "externalDocs": { + "$ref": "http://asyncapi.com/definitions/2.4.0/externalDocs.json" + }, + "message": { + "$ref": "http://asyncapi.com/definitions/2.4.0/message.json" + }, + "operationId": { "type": "string" }, "security": { @@ -32,26 +24,34 @@ "$ref": "http://asyncapi.com/definitions/2.4.0/SecurityRequirement.json" } }, + "summary": { + "type": "string" + }, "tags": { "type": "array", + "uniqueItems": true, "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" + "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" + } + ] + } } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/operation.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.4.0/operationTrait.json b/definitions/2.4.0/operationTrait.json index d6bfb990..1bc522e3 100644 --- a/definitions/2.4.0/operationTrait.json +++ b/definitions/2.4.0/operationTrait.json @@ -1,24 +1,13 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$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 + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.4.0/bindingsObject.json" }, "externalDocs": { "$ref": "http://asyncapi.com/definitions/2.4.0/externalDocs.json" @@ -32,10 +21,21 @@ "$ref": "http://asyncapi.com/definitions/2.4.0/SecurityRequirement.json" } }, - "bindings": { - "$ref": "http://asyncapi.com/definitions/2.4.0/bindingsObject.json" + "summary": { + "type": "string" + }, + "tags": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "http://asyncapi.com/definitions/2.4.0/tag.json" + } } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/operationTrait.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.4.0/parameter.json b/definitions/2.4.0/parameter.json index a67f75df..3b58acea 100644 --- a/definitions/2.4.0/parameter.json +++ b/definitions/2.4.0/parameter.json @@ -1,27 +1,27 @@ { - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json" - } - }, + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.4.0/parameter.json", "properties": { "description": { - "type": "string", - "description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed." + "description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed.", + "type": "string" }, - "schema": { - "$ref": "http://asyncapi.com/definitions/2.4.0/schema.json" + "$ref": { + "$ref": "http://asyncapi.com/definitions/2.4.0/ReferenceObject.json" }, "location": { - "type": "string", "description": "A runtime expression that specifies the location of the parameter value", + "type": "string", "pattern": "^\\$message\\.(header|payload)#(\\/(([^\\/~])|(~[01]))*)*" }, - "$ref": { - "$ref": "http://asyncapi.com/definitions/2.4.0/ReferenceObject.json" + "schema": { + "$ref": "http://asyncapi.com/definitions/2.4.0/schema.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/parameter.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.4.0/parameters.json b/definitions/2.4.0/parameters.json index 632525a9..ce39d2cc 100644 --- a/definitions/2.4.0/parameters.json +++ b/definitions/2.4.0/parameters.json @@ -1,4 +1,7 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.4.0/parameters.json", + "description": "JSON objects describing re-usable channel parameters.", "type": "object", "additionalProperties": { "oneOf": [ @@ -9,8 +12,5 @@ "$ref": "http://asyncapi.com/definitions/2.4.0/parameter.json" } ] - }, - "description": "JSON objects describing re-usable channel parameters.", - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/parameters.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.4.0/schema.json b/definitions/2.4.0/schema.json index f94df2c7..2d3d5532 100644 --- a/definitions/2.4.0/schema.json +++ b/definitions/2.4.0/schema.json @@ -1,40 +1,15 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$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": {} + "deprecated": { + "default": false, + "type": "boolean" }, "allOf": { "type": "array", @@ -43,14 +18,14 @@ "$ref": "http://asyncapi.com/definitions/2.4.0/schema.json" } }, - "oneOf": { + "anyOf": { "type": "array", "minItems": 1, "items": { "$ref": "http://asyncapi.com/definitions/2.4.0/schema.json" } }, - "anyOf": { + "oneOf": { "type": "array", "minItems": 1, "items": { @@ -60,39 +35,64 @@ "not": { "$ref": "http://asyncapi.com/definitions/2.4.0/schema.json" }, + "contains": { + "$ref": "http://asyncapi.com/definitions/2.4.0/schema.json" + }, + "items": { + "default": {}, + "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" + } + } + ] + }, + "propertyNames": { + "$ref": "http://asyncapi.com/definitions/2.4.0/schema.json" + }, "properties": { + "default": {}, "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.4.0/schema.json" - }, - "default": {} + } }, "patternProperties": { + "default": {}, "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" + "additionalProperties": { + "default": {}, + "anyOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.4.0/schema.json" + }, + { + "type": "boolean" + } + ] }, "discriminator": { "type": "string" }, "externalDocs": { "$ref": "http://asyncapi.com/definitions/2.4.0/externalDocs.json" - }, - "deprecated": { - "type": "boolean", - "default": false + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json" } } } - ], - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/schema.json" -} \ No newline at end of file + ] +} diff --git a/definitions/2.4.0/schemas.json b/definitions/2.4.0/schemas.json index a16f0e21..f269ca5b 100644 --- a/definitions/2.4.0/schemas.json +++ b/definitions/2.4.0/schemas.json @@ -1,9 +1,9 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.4.0/schemas.json", + "description": "JSON objects describing schemas the API uses.", "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.4.0/schema.json" - }, - "description": "JSON objects describing schemas the API uses.", - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/schemas.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.4.0/server.json b/definitions/2.4.0/server.json index 346dcd5b..dfe48651 100644 --- a/definitions/2.4.0/server.json +++ b/definitions/2.4.0/server.json @@ -1,43 +1,43 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.4.0/server.json", "description": "An object representing a Server.", + "type": "object", "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" }, + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.4.0/bindingsObject.json" + }, "protocol": { - "type": "string", - "description": "The transfer protocol." + "description": "The transfer protocol.", + "type": "string" }, "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" + "url": { + "type": "string" + }, + "variables": { + "$ref": "http://asyncapi.com/definitions/2.4.0/serverVariables.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/server.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.4.0/serverVariable.json b/definitions/2.4.0/serverVariable.json index 6354ed91..95c44daa 100644 --- a/definitions/2.4.0/serverVariable.json +++ b/definitions/2.4.0/serverVariable.json @@ -1,33 +1,33 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.4.0/serverVariable.json", "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" - } - }, + "type": "object", "properties": { - "enum": { + "description": { + "type": "string" + }, + "examples": { "type": "array", "items": { "type": "string" - }, - "uniqueItems": true + } }, "default": { "type": "string" }, - "description": { - "type": "string" - }, - "examples": { + "enum": { "type": "array", + "uniqueItems": true, "items": { "type": "string" } } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/serverVariable.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.4.0/serverVariables.json b/definitions/2.4.0/serverVariables.json index d1e62195..762dfe4a 100644 --- a/definitions/2.4.0/serverVariables.json +++ b/definitions/2.4.0/serverVariables.json @@ -1,8 +1,8 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.4.0/serverVariables.json", "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.4.0/serverVariable.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/serverVariables.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.4.0/servers.json b/definitions/2.4.0/servers.json index ca8b58bf..ca2fd8cd 100644 --- a/definitions/2.4.0/servers.json +++ b/definitions/2.4.0/servers.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.4.0/servers.json", "description": "An object representing multiple servers.", "type": "object", "additionalProperties": { @@ -10,7 +12,5 @@ "$ref": "http://asyncapi.com/definitions/2.4.0/server.json" } ] - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/servers.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.4.0/specificationExtension.json b/definitions/2.4.0/specificationExtension.json index c57b0c65..a4897b8f 100644 --- a/definitions/2.4.0/specificationExtension.json +++ b/definitions/2.4.0/specificationExtension.json @@ -1,7 +1,7 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json", "description": "Any property starting with x- is valid.", - "additionalProperties": true, "additionalItems": true, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json" -} \ No newline at end of file + "additionalProperties": true +} diff --git a/definitions/2.4.0/symmetricEncryption.json b/definitions/2.4.0/symmetricEncryption.json index 273b5063..afde150e 100644 --- a/definitions/2.4.0/symmetricEncryption.json +++ b/definitions/2.4.0/symmetricEncryption.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.4.0/symmetricEncryption.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "symmetricEncryption" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,7 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/symmetricEncryption.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.4.0/tag.json b/definitions/2.4.0/tag.json index 8164d8ea..65d721df 100644 --- a/definitions/2.4.0/tag.json +++ b/definitions/2.4.0/tag.json @@ -1,18 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$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" + }, + "name": { + "type": "string" } }, "patternProperties": { @@ -20,6 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/tag.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.4.0/userPassword.json b/definitions/2.4.0/userPassword.json index efad217f..70aef204 100644 --- a/definitions/2.4.0/userPassword.json +++ b/definitions/2.4.0/userPassword.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.4.0/userPassword.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "userPassword" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,7 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.4.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.4.0/userPassword.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.5.0/APIKeyHTTPSecurityScheme.json b/definitions/2.5.0/APIKeyHTTPSecurityScheme.json index ad524dfe..fed1d69b 100644 --- a/definitions/2.5.0/APIKeyHTTPSecurityScheme.json +++ b/definitions/2.5.0/APIKeyHTTPSecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.0/APIKeyHTTPSecurityScheme.json", "type": "object", "required": [ "type", @@ -6,15 +8,15 @@ "in" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "httpApiKey" ] }, - "name": { - "type": "string" - }, "in": { "type": "string", "enum": [ @@ -23,7 +25,7 @@ "cookie" ] }, - "description": { + "name": { "type": "string" } }, @@ -32,7 +34,5 @@ "$ref": "http://asyncapi.com/definitions/2.5.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/APIKeyHTTPSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.5.0/BearerHTTPSecurityScheme.json b/definitions/2.5.0/BearerHTTPSecurityScheme.json index f1536a5a..a7d3e22a 100644 --- a/definitions/2.5.0/BearerHTTPSecurityScheme.json +++ b/definitions/2.5.0/BearerHTTPSecurityScheme.json @@ -1,27 +1,29 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.0/BearerHTTPSecurityScheme.json", "type": "object", "required": [ "type", "scheme" ], "properties": { - "scheme": { + "description": { + "type": "string" + }, + "type": { "type": "string", "enum": [ - "bearer" + "http" ] }, "bearerFormat": { "type": "string" }, - "type": { + "scheme": { "type": "string", "enum": [ - "http" + "bearer" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -29,7 +31,5 @@ "$ref": "http://asyncapi.com/definitions/2.5.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/BearerHTTPSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.5.0/HTTPSecurityScheme.json b/definitions/2.5.0/HTTPSecurityScheme.json index 1ce09df2..7b4aaa00 100644 --- a/definitions/2.5.0/HTTPSecurityScheme.json +++ b/definitions/2.5.0/HTTPSecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.0/HTTPSecurityScheme.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/2.5.0/NonBearerHTTPSecurityScheme.json" @@ -9,7 +11,5 @@ { "$ref": "http://asyncapi.com/definitions/2.5.0/APIKeyHTTPSecurityScheme.json" } - ], - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/HTTPSecurityScheme.json" -} \ No newline at end of file + ] +} diff --git a/definitions/2.5.0/NonBearerHTTPSecurityScheme.json b/definitions/2.5.0/NonBearerHTTPSecurityScheme.json index 21d127cf..11f7de8e 100644 --- a/definitions/2.5.0/NonBearerHTTPSecurityScheme.json +++ b/definitions/2.5.0/NonBearerHTTPSecurityScheme.json @@ -1,4 +1,7 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.0/NonBearerHTTPSecurityScheme.json", + "type": "object", "not": { "type": "object", "properties": { @@ -10,15 +13,11 @@ } } }, - "type": "object", "required": [ "scheme", "type" ], "properties": { - "scheme": { - "type": "string" - }, "description": { "type": "string" }, @@ -27,6 +26,9 @@ "enum": [ "http" ] + }, + "scheme": { + "type": "string" } }, "patternProperties": { @@ -34,7 +36,5 @@ "$ref": "http://asyncapi.com/definitions/2.5.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/NonBearerHTTPSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.5.0/Reference.json b/definitions/2.5.0/Reference.json index 5249b422..e8da701e 100644 --- a/definitions/2.5.0/Reference.json +++ b/definitions/2.5.0/Reference.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.0/Reference.json", "type": "object", "required": [ "$ref" @@ -7,7 +9,5 @@ "$ref": { "$ref": "http://asyncapi.com/definitions/2.5.0/ReferenceObject.json" } - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/Reference.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.5.0/ReferenceObject.json b/definitions/2.5.0/ReferenceObject.json index 92ff26f4..2867dcaf 100644 --- a/definitions/2.5.0/ReferenceObject.json +++ b/definitions/2.5.0/ReferenceObject.json @@ -1,6 +1,6 @@ { - "type": "string", - "format": "uri-reference", "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/ReferenceObject.json" -} \ No newline at end of file + "$id": "http://asyncapi.com/definitions/2.5.0/ReferenceObject.json", + "type": "string", + "format": "uri-reference" +} diff --git a/definitions/2.5.0/SaslGssapiSecurityScheme.json b/definitions/2.5.0/SaslGssapiSecurityScheme.json index ad22b0a0..4bd0e359 100644 --- a/definitions/2.5.0/SaslGssapiSecurityScheme.json +++ b/definitions/2.5.0/SaslGssapiSecurityScheme.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.0/SaslGssapiSecurityScheme.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "gssapi" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,7 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.5.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/SaslGssapiSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.5.0/SaslPlainSecurityScheme.json b/definitions/2.5.0/SaslPlainSecurityScheme.json index c2457894..55c8f02a 100644 --- a/definitions/2.5.0/SaslPlainSecurityScheme.json +++ b/definitions/2.5.0/SaslPlainSecurityScheme.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.0/SaslPlainSecurityScheme.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "plain" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,7 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.5.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/SaslPlainSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.5.0/SaslScramSecurityScheme.json b/definitions/2.5.0/SaslScramSecurityScheme.json index 9c9f52c8..db9207ce 100644 --- a/definitions/2.5.0/SaslScramSecurityScheme.json +++ b/definitions/2.5.0/SaslScramSecurityScheme.json @@ -1,18 +1,20 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.0/SaslScramSecurityScheme.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "scramSha256", "scramSha512" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -20,7 +22,5 @@ "$ref": "http://asyncapi.com/definitions/2.5.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/SaslScramSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.5.0/SaslSecurityScheme.json b/definitions/2.5.0/SaslSecurityScheme.json index fdcb02c6..2f6449bf 100644 --- a/definitions/2.5.0/SaslSecurityScheme.json +++ b/definitions/2.5.0/SaslSecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.0/SaslSecurityScheme.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/2.5.0/SaslPlainSecurityScheme.json" @@ -9,7 +11,5 @@ { "$ref": "http://asyncapi.com/definitions/2.5.0/SaslGssapiSecurityScheme.json" } - ], - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/SaslSecurityScheme.json" -} \ No newline at end of file + ] +} diff --git a/definitions/2.5.0/SecurityRequirement.json b/definitions/2.5.0/SecurityRequirement.json index 04f6b485..680a9817 100644 --- a/definitions/2.5.0/SecurityRequirement.json +++ b/definitions/2.5.0/SecurityRequirement.json @@ -1,12 +1,12 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.0/SecurityRequirement.json", "type": "object", "additionalProperties": { "type": "array", + "uniqueItems": true, "items": { "type": "string" - }, - "uniqueItems": true - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/SecurityRequirement.json" -} \ No newline at end of file + } + } +} diff --git a/definitions/2.5.0/SecurityScheme.json b/definitions/2.5.0/SecurityScheme.json index 5f923079..1bde7537 100644 --- a/definitions/2.5.0/SecurityScheme.json +++ b/definitions/2.5.0/SecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.0/SecurityScheme.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/2.5.0/userPassword.json" @@ -27,7 +29,5 @@ { "$ref": "http://asyncapi.com/definitions/2.5.0/SaslSecurityScheme.json" } - ], - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/SecurityScheme.json" -} \ No newline at end of file + ] +} diff --git a/definitions/2.5.0/X509.json b/definitions/2.5.0/X509.json index 9b660902..139f4d61 100644 --- a/definitions/2.5.0/X509.json +++ b/definitions/2.5.0/X509.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.0/X509.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "X509" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,7 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.5.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/X509.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.5.0/apiKey.json b/definitions/2.5.0/apiKey.json index 5b18fd7b..3690f3e6 100644 --- a/definitions/2.5.0/apiKey.json +++ b/definitions/2.5.0/apiKey.json @@ -1,10 +1,15 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.0/apiKey.json", "type": "object", "required": [ "type", "in" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ @@ -17,9 +22,6 @@ "user", "password" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -27,7 +29,5 @@ "$ref": "http://asyncapi.com/definitions/2.5.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/apiKey.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.5.0/asymmetricEncryption.json b/definitions/2.5.0/asymmetricEncryption.json index d8f01ae7..e9893754 100644 --- a/definitions/2.5.0/asymmetricEncryption.json +++ b/definitions/2.5.0/asymmetricEncryption.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.0/asymmetricEncryption.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "asymmetricEncryption" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,7 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.5.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/asymmetricEncryption.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.5.0/asyncapi.json b/definitions/2.5.0/asyncapi.json index 0fc8db14..a22f361b 100644 --- a/definitions/2.5.0/asyncapi.json +++ b/definitions/2.5.0/asyncapi.json @@ -1,56 +1,56 @@ { - "title": "AsyncAPI 2.5.0 schema.", "$schema": "http://json-schema.org/draft-07/schema#", "$id": "http://asyncapi.com/definitions/2.5.0/asyncapi.json", + "title": "AsyncAPI 2.5.0 schema.", "type": "object", "required": [ "asyncapi", "info", "channels" ], - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.5.0/specificationExtension.json" - } - }, "properties": { + "id": { + "description": "A unique id representing the application.", + "type": "string", + "format": "uri" + }, "asyncapi": { + "description": "The AsyncAPI specification version of this document.", "type": "string", "enum": [ "2.5.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.5.0/info.json" + "channels": { + "$ref": "http://asyncapi.com/definitions/2.5.0/channels.json" }, - "servers": { - "$ref": "http://asyncapi.com/definitions/2.5.0/servers.json" + "components": { + "$ref": "http://asyncapi.com/definitions/2.5.0/components.json" }, "defaultContentType": { "type": "string" }, - "channels": { - "$ref": "http://asyncapi.com/definitions/2.5.0/channels.json" + "externalDocs": { + "$ref": "http://asyncapi.com/definitions/2.5.0/externalDocs.json" }, - "components": { - "$ref": "http://asyncapi.com/definitions/2.5.0/components.json" + "info": { + "$ref": "http://asyncapi.com/definitions/2.5.0/info.json" + }, + "servers": { + "$ref": "http://asyncapi.com/definitions/2.5.0/servers.json" }, "tags": { "type": "array", + "uniqueItems": true, "items": { "$ref": "http://asyncapi.com/definitions/2.5.0/tag.json" - }, - "uniqueItems": true - }, - "externalDocs": { - "$ref": "http://asyncapi.com/definitions/2.5.0/externalDocs.json" + } } - } -} \ No newline at end of file + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.5.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.5.0/avroSchema_v1.json b/definitions/2.5.0/avroSchema_v1.json index 34386294..1d723172 100644 --- a/definitions/2.5.0/avroSchema_v1.json +++ b/definitions/2.5.0/avroSchema_v1.json @@ -1,220 +1,131 @@ { "$schema": "http://json-schema.org/draft-07/schema#", "$id": "http://asyncapi.com/definitions/2.5.0/avroSchema_v1.json", + "title": "Avro Schema Definition", + "description": "Json-Schema definition for Avro AVSC files.", + "oneOf": [ + { + "$ref": "#/definitions/avroSchema" + } + ], "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.", + "avroArray": { + "title": "Array", + "description": "An array", "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", + "type", + "items" + ], "properties": { - "name": { - "$ref": "#/definitions/name" - }, "type": { - "$ref": "#/definitions/types" - }, - "doc": { - "type": "string" + "type": "string", + "const": "array" }, - "default": true, - "order": { - "enum": [ - "ascending", - "descending", - "ignore" - ] + "items": { + "$ref": "#/definitions/types" }, "aliases": { "type": "array", "items": { "$ref": "#/definitions/name" } - } - }, - "required": [ - "name", - "type" - ] - }, - "avroRecord": { - "title": "Record", - "description": "A Record", - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "record" + }, + "doc": { + "type": "string" }, "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", + "required": [ + "type", + "name", + "symbols" + ], "properties": { "type": { "type": "string", "const": "enum" }, + "aliases": { + "type": "array", + "items": { + "$ref": "#/definitions/name" + } + }, + "doc": { + "type": "string" + }, "name": { "$ref": "#/definitions/name" }, "namespace": { "$ref": "#/definitions/namespace" }, - "doc": { - "type": "string" - }, - "aliases": { + "symbols": { "type": "array", "items": { "$ref": "#/definitions/name" } + } + } + }, + "avroField": { + "title": "Field", + "description": "A field within a Record", + "type": "object", + "required": [ + "name", + "type" + ], + "properties": { + "default": true, + "type": { + "$ref": "#/definitions/types" }, - "symbols": { + "aliases": { "type": "array", "items": { "$ref": "#/definitions/name" } + }, + "doc": { + "type": "string" + }, + "name": { + "$ref": "#/definitions/name" + }, + "order": { + "enum": [ + "ascending", + "descending", + "ignore" + ] } - }, + } + }, + "avroFixed": { + "title": "Fixed", + "description": "A fixed sized array of bytes", + "type": "object", "required": [ "type", "name", - "symbols" - ] - }, - "avroArray": { - "title": "Array", - "description": "An array", - "type": "object", + "size" + ], "properties": { "type": { "type": "string", - "const": "array" - }, - "name": { - "$ref": "#/definitions/name" - }, - "namespace": { - "$ref": "#/definitions/namespace" - }, - "doc": { - "type": "string" + "const": "fixed" }, "aliases": { "type": "array", @@ -222,82 +133,117 @@ "$ref": "#/definitions/name" } }, - "items": { - "$ref": "#/definitions/types" + "doc": { + "type": "string" + }, + "name": { + "$ref": "#/definitions/name" + }, + "namespace": { + "$ref": "#/definitions/namespace" + }, + "size": { + "type": "number" } - }, - "required": [ - "type", - "items" - ] + } }, "avroMap": { "title": "Map", "description": "A map of values", "type": "object", + "required": [ + "type", + "values" + ], "properties": { "type": { "type": "string", "const": "map" }, - "name": { - "$ref": "#/definitions/name" - }, - "namespace": { - "$ref": "#/definitions/namespace" - }, - "doc": { - "type": "string" - }, "aliases": { "type": "array", "items": { "$ref": "#/definitions/name" } }, + "doc": { + "type": "string" + }, + "name": { + "$ref": "#/definitions/name" + }, + "namespace": { + "$ref": "#/definitions/namespace" + }, "values": { "$ref": "#/definitions/types" } - }, - "required": [ - "type", - "values" - ] + } }, - "avroFixed": { - "title": "Fixed", - "description": "A fixed sized array of bytes", + "avroRecord": { + "title": "Record", + "description": "A Record", "type": "object", + "required": [ + "type", + "name", + "fields" + ], "properties": { "type": { "type": "string", - "const": "fixed" - }, - "name": { - "$ref": "#/definitions/name" + "const": "record" }, - "namespace": { - "$ref": "#/definitions/namespace" + "aliases": { + "type": "array", + "items": { + "$ref": "#/definitions/name" + } }, "doc": { "type": "string" }, - "aliases": { + "fields": { "type": "array", "items": { - "$ref": "#/definitions/name" + "$ref": "#/definitions/avroField" } }, - "size": { - "type": "number" + "name": { + "$ref": "#/definitions/name" + }, + "namespace": { + "$ref": "#/definitions/namespace" + } + } + }, + "avroSchema": { + "title": "Avro Schema", + "description": "Root Schema", + "oneOf": [ + { + "$ref": "#/definitions/types" } - }, - "required": [ - "type", - "name", - "size" ] }, + "avroUnion": { + "title": "Union", + "description": "A Union of types", + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/definitions/avroSchema" + } + }, + "customTypeReference": { + "title": "Custom Type", + "description": "Reference to a ComplexType", + "type": "string", + "not": { + "$ref": "#/definitions/primitiveType" + }, + "pattern": "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$" + }, "name": { "type": "string", "pattern": "^[A-Za-z_][A-Za-z0-9_]*$" @@ -305,13 +251,67 @@ "namespace": { "type": "string", "pattern": "^([A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*)*$" + }, + "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", + "required": [ + "type" + ], + "properties": { + "type": { + "$ref": "#/definitions/primitiveType" + } + } + }, + "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" + } + ] } - }, - "description": "Json-Schema definition for Avro AVSC files.", - "oneOf": [ - { - "$ref": "#/definitions/avroSchema" - } - ], - "title": "Avro Schema Definition" -} \ No newline at end of file + } +} diff --git a/definitions/2.5.0/bindingsObject.json b/definitions/2.5.0/bindingsObject.json index 3f75a27d..11bbff10 100644 --- a/definitions/2.5.0/bindingsObject.json +++ b/definitions/2.5.0/bindingsObject.json @@ -1,24 +1,24 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.0/bindingsObject.json", "type": "object", - "additionalProperties": true, "properties": { - "http": {}, - "ws": {}, "amqp": {}, "amqp1": {}, + "anypointmq": {}, + "http": {}, + "ibmmq": {}, + "jms": {}, + "kafka": {}, "mqtt": {}, "mqtt5": {}, - "kafka": {}, - "anypointmq": {}, "nats": {}, - "jms": {}, + "redis": {}, "sns": {}, + "solace": {}, "sqs": {}, "stomp": {}, - "redis": {}, - "ibmmq": {}, - "solace": {} + "ws": {} }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/bindingsObject.json" -} \ No newline at end of file + "additionalProperties": true +} diff --git a/definitions/2.5.0/channelItem.json b/definitions/2.5.0/channelItem.json index b7146087..265c093a 100644 --- a/definitions/2.5.0/channelItem.json +++ b/definitions/2.5.0/channelItem.json @@ -1,44 +1,44 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.0/channelItem.json", "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.5.0/specificationExtension.json" - } - }, "properties": { + "description": { + "description": "A description of the channel.", + "type": "string" + }, + "deprecated": { + "default": false, + "type": "boolean" + }, "$ref": { "$ref": "http://asyncapi.com/definitions/2.5.0/ReferenceObject.json" }, + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.5.0/bindingsObject.json" + }, "parameters": { "$ref": "http://asyncapi.com/definitions/2.5.0/parameters.json" }, - "description": { - "type": "string", - "description": "A description of the channel." + "publish": { + "$ref": "http://asyncapi.com/definitions/2.5.0/operation.json" }, "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.", + "type": "array", + "uniqueItems": true, "items": { "type": "string" - }, - "uniqueItems": true - }, - "publish": { - "$ref": "http://asyncapi.com/definitions/2.5.0/operation.json" + } }, "subscribe": { "$ref": "http://asyncapi.com/definitions/2.5.0/operation.json" - }, - "deprecated": { - "type": "boolean", - "default": false - }, - "bindings": { - "$ref": "http://asyncapi.com/definitions/2.5.0/bindingsObject.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/channelItem.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.5.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.5.0/channels.json b/definitions/2.5.0/channels.json index 2d0d0b8f..92ec3a33 100644 --- a/definitions/2.5.0/channels.json +++ b/definitions/2.5.0/channels.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.0/channels.json", "type": "object", "propertyNames": { "type": "string", @@ -7,7 +9,5 @@ }, "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.5.0/channelItem.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/channels.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.5.0/components.json b/definitions/2.5.0/components.json index ab081d87..e4cb151c 100644 --- a/definitions/2.5.0/components.json +++ b/definitions/2.5.0/components.json @@ -1,45 +1,17 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.0/components.json", "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.5.0/specificationExtension.json" - } - }, + "type": "object", "properties": { - "schemas": { - "$ref": "http://asyncapi.com/definitions/2.5.0/schemas.json" - }, - "servers": { - "$ref": "http://asyncapi.com/definitions/2.5.0/servers.json" - }, - "channels": { - "$ref": "http://asyncapi.com/definitions/2.5.0/channels.json" - }, - "serverVariables": { - "$ref": "http://asyncapi.com/definitions/2.5.0/serverVariables.json" - }, - "messages": { - "$ref": "http://asyncapi.com/definitions/2.5.0/messages.json" - }, - "securitySchemes": { + "channelBindings": { "type": "object", - "patternProperties": { - "^[\\w\\d\\.\\-_]+$": { - "oneOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.5.0/Reference.json" - }, - { - "$ref": "http://asyncapi.com/definitions/2.5.0/SecurityScheme.json" - } - ] - } + "additionalProperties": { + "$ref": "http://asyncapi.com/definitions/2.5.0/bindingsObject.json" } }, - "parameters": { - "$ref": "http://asyncapi.com/definitions/2.5.0/parameters.json" + "channels": { + "$ref": "http://asyncapi.com/definitions/2.5.0/channels.json" }, "correlationIds": { "type": "object", @@ -56,10 +28,10 @@ } } }, - "operationTraits": { + "messageBindings": { "type": "object", "additionalProperties": { - "$ref": "http://asyncapi.com/definitions/2.5.0/operationTrait.json" + "$ref": "http://asyncapi.com/definitions/2.5.0/bindingsObject.json" } }, "messageTraits": { @@ -68,31 +40,59 @@ "$ref": "http://asyncapi.com/definitions/2.5.0/messageTrait.json" } }, - "serverBindings": { + "messages": { + "$ref": "http://asyncapi.com/definitions/2.5.0/messages.json" + }, + "operationBindings": { "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.5.0/bindingsObject.json" } }, - "channelBindings": { + "operationTraits": { "type": "object", "additionalProperties": { - "$ref": "http://asyncapi.com/definitions/2.5.0/bindingsObject.json" + "$ref": "http://asyncapi.com/definitions/2.5.0/operationTrait.json" } }, - "operationBindings": { + "parameters": { + "$ref": "http://asyncapi.com/definitions/2.5.0/parameters.json" + }, + "schemas": { + "$ref": "http://asyncapi.com/definitions/2.5.0/schemas.json" + }, + "securitySchemes": { "type": "object", - "additionalProperties": { - "$ref": "http://asyncapi.com/definitions/2.5.0/bindingsObject.json" + "patternProperties": { + "^[\\w\\d\\.\\-_]+$": { + "oneOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.5.0/Reference.json" + }, + { + "$ref": "http://asyncapi.com/definitions/2.5.0/SecurityScheme.json" + } + ] + } } }, - "messageBindings": { + "serverBindings": { "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.5.0/bindingsObject.json" } + }, + "serverVariables": { + "$ref": "http://asyncapi.com/definitions/2.5.0/serverVariables.json" + }, + "servers": { + "$ref": "http://asyncapi.com/definitions/2.5.0/servers.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/components.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.5.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.5.0/contact.json b/definitions/2.5.0/contact.json index e07cf9f8..57ab0bd5 100644 --- a/definitions/2.5.0/contact.json +++ b/definitions/2.5.0/contact.json @@ -1,21 +1,22 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.0/contact.json", "description": "Contact information for the owners of the API.", - "additionalProperties": false, + "type": "object", "properties": { - "name": { + "email": { + "description": "The email address of the contact person/organization.", "type": "string", - "description": "The identifying name of the contact person/organization." + "format": "email" + }, + "name": { + "description": "The identifying name of the contact person/organization.", + "type": "string" }, "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" + "format": "uri" } }, "patternProperties": { @@ -23,6 +24,5 @@ "$ref": "http://asyncapi.com/definitions/2.5.0/specificationExtension.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/contact.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.5.0/correlationId.json b/definitions/2.5.0/correlationId.json index 5a9e392b..d88e8d57 100644 --- a/definitions/2.5.0/correlationId.json +++ b/definitions/2.5.0/correlationId.json @@ -1,25 +1,25 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.0/correlationId.json", "type": "object", "required": [ "location" ], - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.5.0/specificationExtension.json" - } - }, "properties": { "description": { - "type": "string", - "description": "A optional description of the correlation ID. GitHub Flavored Markdown is allowed." + "description": "A optional description of the correlation ID. GitHub Flavored Markdown is allowed.", + "type": "string" }, "location": { - "type": "string", "description": "A runtime expression that specifies the location of the correlation ID", + "type": "string", "pattern": "^\\$message\\.(header|payload)#(\\/(([^\\/~])|(~[01]))*)*" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/correlationId.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.5.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.5.0/external.json b/definitions/2.5.0/external.json index 75dfbc16..24a070fe 100644 --- a/definitions/2.5.0/external.json +++ b/definitions/2.5.0/external.json @@ -1,5 +1,5 @@ { - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/http://something.example.com/schemas/external.json", - "type": "string" - } \ No newline at end of file + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.0/http://something.example.com/schemas/external.json", + "type": "string" +} diff --git a/definitions/2.5.0/externalDocs.json b/definitions/2.5.0/externalDocs.json index 3f07f40d..07181cc6 100644 --- a/definitions/2.5.0/externalDocs.json +++ b/definitions/2.5.0/externalDocs.json @@ -1,7 +1,8 @@ { - "type": "object", - "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.0/externalDocs.json", "description": "information about external documentation", + "type": "object", "required": [ "url" ], @@ -19,6 +20,5 @@ "$ref": "http://asyncapi.com/definitions/2.5.0/specificationExtension.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/externalDocs.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.5.0/info.json b/definitions/2.5.0/info.json index 7b74ab39..91d0159a 100644 --- a/definitions/2.5.0/info.json +++ b/definitions/2.5.0/info.json @@ -1,41 +1,41 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.0/info.json", "description": "General information about the API.", + "type": "object", "required": [ "version", "title" ], - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.5.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": "A unique and precise title of the API.", + "type": "string" }, "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" + "description": "A longer description of the API. Should be different from the title. CommonMark is allowed.", + "type": "string" }, "contact": { "$ref": "http://asyncapi.com/definitions/2.5.0/contact.json" }, "license": { "$ref": "http://asyncapi.com/definitions/2.5.0/license.json" + }, + "termsOfService": { + "description": "A URL to the Terms of Service for the API. MUST be in the format of a URL.", + "type": "string", + "format": "uri" + }, + "version": { + "description": "A semantic version number of the API.", + "type": "string" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/info.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.5.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.5.0/license.json b/definitions/2.5.0/license.json index fdb96a7d..6d19ab5b 100644 --- a/definitions/2.5.0/license.json +++ b/definitions/2.5.0/license.json @@ -1,17 +1,18 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.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." + "description": "The name of the license type. It's encouraged to use an OSI compatible license.", + "type": "string" }, "url": { - "type": "string", "description": "The URL pointing to the license.", + "type": "string", "format": "uri" } }, @@ -20,6 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.5.0/specificationExtension.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/license.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.5.0/message.json b/definitions/2.5.0/message.json index c1133928..b1ca60c5 100644 --- a/definitions/2.5.0/message.json +++ b/definitions/2.5.0/message.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.0/message.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/2.5.0/Reference.json" @@ -7,8 +9,9 @@ "oneOf": [ { "type": "object", - "required": ["oneOf"], - "additionalProperties": false, + "required": [ + "oneOf" + ], "properties": { "oneOf": { "type": "array", @@ -16,127 +19,11 @@ "$ref": "http://asyncapi.com/definitions/2.5.0/message.json" } } - } + }, + "additionalProperties": false }, { "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.5.0/specificationExtension.json" - } - }, - "properties": { - "schemaFormat": { - "type": "string" - }, - "contentType": { - "type": "string" - }, - "headers": { - "allOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.5.0/schema.json" - }, - { - "properties": { - "type": { - "const": "object" - } - } - } - ] - }, - "messageId": { - "type": "string" - }, - "payload": {}, - "correlationId": { - "oneOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.5.0/Reference.json" - }, - { - "$ref": "http://asyncapi.com/definitions/2.5.0/correlationId.json" - } - ] - }, - "tags": { - "type": "array", - "items": { - "$ref": "http://asyncapi.com/definitions/2.5.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.5.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.5.0/bindingsObject.json" - }, - "traits": { - "type": "array", - "items": { - "oneOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.5.0/Reference.json" - }, - { - "$ref": "http://asyncapi.com/definitions/2.5.0/messageTrait.json" - } - ] - } - } - }, "allOf": [ { "if": { @@ -222,8 +109,8 @@ "properties": { "schemaFormat": { "enum": [ - "application/vnd.oai.openapi;version=3.0.0", - "application/vnd.oai.openapi+json;version=3.0.0", + "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" ] } @@ -260,11 +147,130 @@ } } } - ] + ], + "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": { + "type": "array", + "items": { + "type": "object", + "anyOf": [ + { + "required": [ + "payload" + ] + }, + { + "required": [ + "headers" + ] + } + ], + "properties": { + "headers": { + "type": "object" + }, + "name": { + "description": "Machine readable name of the message example.", + "type": "string" + }, + "payload": {}, + "summary": { + "description": "A brief summary of the message example.", + "type": "string" + } + }, + "additionalProperties": false + } + }, + "deprecated": { + "default": false, + "type": "boolean" + }, + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.5.0/bindingsObject.json" + }, + "contentType": { + "type": "string" + }, + "correlationId": { + "oneOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.5.0/Reference.json" + }, + { + "$ref": "http://asyncapi.com/definitions/2.5.0/correlationId.json" + } + ] + }, + "externalDocs": { + "$ref": "http://asyncapi.com/definitions/2.5.0/externalDocs.json" + }, + "headers": { + "allOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.5.0/schema.json" + }, + { + "properties": { + "type": { + "const": "object" + } + } + } + ] + }, + "messageId": { + "type": "string" + }, + "name": { + "description": "Name of the message.", + "type": "string" + }, + "payload": {}, + "schemaFormat": { + "type": "string" + }, + "summary": { + "description": "A brief summary of the message.", + "type": "string" + }, + "tags": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "http://asyncapi.com/definitions/2.5.0/tag.json" + } + }, + "traits": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.5.0/Reference.json" + }, + { + "$ref": "http://asyncapi.com/definitions/2.5.0/messageTrait.json" + } + ] + } + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.5.0/specificationExtension.json" + } + }, + "additionalProperties": false } ] } - ], - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/message.json" + ] } diff --git a/definitions/2.5.0/messageTrait.json b/definitions/2.5.0/messageTrait.json index 74df670a..acf0ecef 100644 --- a/definitions/2.5.0/messageTrait.json +++ b/definitions/2.5.0/messageTrait.json @@ -1,18 +1,45 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.0/messageTrait.json", "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.5.0/specificationExtension.json" - } - }, "properties": { - "schemaFormat": { + "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": { + "type": "array", + "items": { + "type": "object" + } + }, + "deprecated": { + "default": false, + "type": "boolean" + }, + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.5.0/bindingsObject.json" + }, "contentType": { "type": "string" }, + "correlationId": { + "oneOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.5.0/Reference.json" + }, + { + "$ref": "http://asyncapi.com/definitions/2.5.0/correlationId.json" + } + ] + }, + "externalDocs": { + "$ref": "http://asyncapi.com/definitions/2.5.0/externalDocs.json" + }, "headers": { "allOf": [ { @@ -30,56 +57,29 @@ "messageId": { "type": "string" }, - "correlationId": { - "oneOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.5.0/Reference.json" - }, - { - "$ref": "http://asyncapi.com/definitions/2.5.0/correlationId.json" - } - ] - }, - "tags": { - "type": "array", - "items": { - "$ref": "http://asyncapi.com/definitions/2.5.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." + "description": "Name of the message.", + "type": "string" }, - "externalDocs": { - "$ref": "http://asyncapi.com/definitions/2.5.0/externalDocs.json" + "schemaFormat": { + "type": "string" }, - "deprecated": { - "type": "boolean", - "default": false + "summary": { + "description": "A brief summary of the message.", + "type": "string" }, - "examples": { + "tags": { "type": "array", + "uniqueItems": true, "items": { - "type": "object" + "$ref": "http://asyncapi.com/definitions/2.5.0/tag.json" } - }, - "bindings": { - "$ref": "http://asyncapi.com/definitions/2.5.0/bindingsObject.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/messageTrait.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.5.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.5.0/messages.json b/definitions/2.5.0/messages.json index e7f650f4..87a6e545 100644 --- a/definitions/2.5.0/messages.json +++ b/definitions/2.5.0/messages.json @@ -1,9 +1,9 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.0/messages.json", + "description": "JSON objects describing the messages being consumed and produced by the API.", "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.5.0/message.json" - }, - "description": "JSON objects describing the messages being consumed and produced by the API.", - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/messages.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.5.0/oauth2Flow.json b/definitions/2.5.0/oauth2Flow.json index 4b9b199e..65609fa8 100644 --- a/definitions/2.5.0/oauth2Flow.json +++ b/definitions/2.5.0/oauth2Flow.json @@ -1,20 +1,22 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.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.5.0/oauth2Scopes.json" + }, + "tokenUrl": { + "type": "string", + "format": "uri" } }, "patternProperties": { @@ -22,7 +24,5 @@ "$ref": "http://asyncapi.com/definitions/2.5.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/oauth2Flow.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.5.0/oauth2Flows.json b/definitions/2.5.0/oauth2Flows.json index c1b3facf..9fc034e6 100644 --- a/definitions/2.5.0/oauth2Flows.json +++ b/definitions/2.5.0/oauth2Flows.json @@ -1,23 +1,25 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.0/oauth2Flows.json", "type": "object", "required": [ "type", "flows" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "oauth2" ] }, - "description": { - "type": "string" - }, "flows": { "type": "object", "properties": { - "implicit": { + "authorizationCode": { "allOf": [ { "$ref": "http://asyncapi.com/definitions/2.5.0/oauth2Flow.json" @@ -25,19 +27,13 @@ { "required": [ "authorizationUrl", + "tokenUrl", "scopes" ] - }, - { - "not": { - "required": [ - "tokenUrl" - ] - } } ] }, - "password": { + "clientCredentials": { "allOf": [ { "$ref": "http://asyncapi.com/definitions/2.5.0/oauth2Flow.json" @@ -57,37 +53,43 @@ } ] }, - "clientCredentials": { + "implicit": { "allOf": [ { "$ref": "http://asyncapi.com/definitions/2.5.0/oauth2Flow.json" }, { "required": [ - "tokenUrl", + "authorizationUrl", "scopes" ] }, { "not": { "required": [ - "authorizationUrl" + "tokenUrl" ] } } ] }, - "authorizationCode": { + "password": { "allOf": [ { "$ref": "http://asyncapi.com/definitions/2.5.0/oauth2Flow.json" }, { "required": [ - "authorizationUrl", "tokenUrl", "scopes" ] + }, + { + "not": { + "required": [ + "authorizationUrl" + ] + } } ] } @@ -99,7 +101,5 @@ "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/2.5.0/specificationExtension.json" } - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/oauth2Flows.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.5.0/oauth2Scopes.json b/definitions/2.5.0/oauth2Scopes.json index b785410a..a005141d 100644 --- a/definitions/2.5.0/oauth2Scopes.json +++ b/definitions/2.5.0/oauth2Scopes.json @@ -1,8 +1,8 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.0/oauth2Scopes.json", "type": "object", "additionalProperties": { "type": "string" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/oauth2Scopes.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.5.0/openIdConnect.json b/definitions/2.5.0/openIdConnect.json index 22abe2ff..2d673ab1 100644 --- a/definitions/2.5.0/openIdConnect.json +++ b/definitions/2.5.0/openIdConnect.json @@ -1,19 +1,21 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.0/openIdConnect.json", "type": "object", "required": [ "type", "openIdConnectUrl" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "openIdConnect" ] }, - "description": { - "type": "string" - }, "openIdConnectUrl": { "type": "string", "format": "uri" @@ -24,7 +26,5 @@ "$ref": "http://asyncapi.com/definitions/2.5.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/openIdConnect.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.5.0/openapiSchema_3_0.json b/definitions/2.5.0/openapiSchema_3_0.json index 5ae95127..e3ee456f 100644 --- a/definitions/2.5.0/openapiSchema_3_0.json +++ b/definitions/2.5.0/openapiSchema_3_0.json @@ -2,154 +2,26 @@ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "http://asyncapi.com/definitions/2.5.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 + "description": { + "type": "string" }, - "minProperties": { - "type": "integer", - "minimum": 0, - "default": 0 + "deprecated": { + "default": false, + "type": "boolean" }, - "required": { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "uniqueItems": true + "readOnly": { + "default": false, + "type": "boolean" }, - "enum": { - "type": "array", - "items": true, - "minItems": 1, - "uniqueItems": false + "writeOnly": { + "default": false, + "type": "boolean" }, + "default": true, "type": { "type": "string", "enum": [ @@ -161,15 +33,11 @@ "string" ] }, - "not": { - "oneOf": [ - { - "$ref": "#" - }, - { - "$ref": "#/definitions/Reference" - } - ] + "enum": { + "type": "array", + "minItems": 1, + "uniqueItems": false, + "items": true }, "allOf": { "type": "array", @@ -184,7 +52,7 @@ ] } }, - "oneOf": { + "anyOf": { "type": "array", "items": { "oneOf": [ @@ -197,7 +65,7 @@ ] } }, - "anyOf": { + "oneOf": { "type": "array", "items": { "oneOf": [ @@ -210,6 +78,63 @@ ] } }, + "not": { + "oneOf": [ + { + "$ref": "#" + }, + { + "$ref": "#/definitions/Reference" + } + ] + }, + "exclusiveMaximum": { + "default": false, + "type": "boolean" + }, + "maximum": { + "type": "number" + }, + "exclusiveMinimum": { + "default": false, + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "multipleOf": { + "type": "number", + "exclusiveMinimum": 0 + }, + "pattern": { + "type": "string", + "format": "regex" + }, + "format": { + "type": "string" + }, + "maxLength": { + "type": "integer", + "minimum": 0 + }, + "minLength": { + "default": 0, + "type": "integer", + "minimum": 0 + }, + "maxItems": { + "type": "integer", + "minimum": 0 + }, + "minItems": { + "default": 0, + "type": "integer", + "minimum": 0 + }, + "uniqueItems": { + "default": false, + "type": "boolean" + }, "items": { "oneOf": [ { @@ -220,6 +145,23 @@ } ] }, + "required": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "maxProperties": { + "type": "integer", + "minimum": 0 + }, + "minProperties": { + "default": 0, + "type": "integer", + "minimum": 0 + }, "properties": { "type": "object", "additionalProperties": { @@ -234,6 +176,7 @@ } }, "additionalProperties": { + "default": true, "oneOf": [ { "$ref": "#" @@ -244,38 +187,18 @@ { "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 + "nullable": { + "default": false, + "type": "boolean" }, "xml": { "$ref": "#/definitions/XML" @@ -284,5 +207,82 @@ "patternProperties": { "^x-": true }, - "additionalProperties": false -} \ No newline at end of file + "additionalProperties": false, + "definitions": { + "Discriminator": { + "type": "object", + "required": [ + "propertyName" + ], + "properties": { + "mapping": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "propertyName": { + "type": "string" + } + } + }, + "ExternalDocumentation": { + "type": "object", + "required": [ + "url" + ], + "properties": { + "description": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri-reference" + } + }, + "patternProperties": { + "^x-": {} + }, + "additionalProperties": false + }, + "Reference": { + "type": "object", + "required": [ + "$ref" + ], + "patternProperties": { + "^\\$ref$": { + "type": "string", + "format": "uri-reference" + } + } + }, + "XML": { + "type": "object", + "properties": { + "attribute": { + "default": false, + "type": "boolean" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string", + "format": "uri" + }, + "prefix": { + "type": "string" + }, + "wrapped": { + "default": false, + "type": "boolean" + } + }, + "patternProperties": { + "^x-": {} + }, + "additionalProperties": false + } + } +} diff --git a/definitions/2.5.0/operation.json b/definitions/2.5.0/operation.json index 9dba88e2..c1db6b5e 100644 --- a/definitions/2.5.0/operation.json +++ b/definitions/2.5.0/operation.json @@ -1,29 +1,21 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.0/operation.json", "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.5.0/specificationExtension.json" - } - }, "properties": { - "traits": { - "type": "array", - "items": { - "oneOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.5.0/Reference.json" - }, - { - "$ref": "http://asyncapi.com/definitions/2.5.0/operationTrait.json" - } - ] - } - }, - "summary": { + "description": { "type": "string" }, - "description": { + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.5.0/bindingsObject.json" + }, + "externalDocs": { + "$ref": "http://asyncapi.com/definitions/2.5.0/externalDocs.json" + }, + "message": { + "$ref": "http://asyncapi.com/definitions/2.5.0/message.json" + }, + "operationId": { "type": "string" }, "security": { @@ -32,26 +24,34 @@ "$ref": "http://asyncapi.com/definitions/2.5.0/SecurityRequirement.json" } }, + "summary": { + "type": "string" + }, "tags": { "type": "array", + "uniqueItems": true, "items": { "$ref": "http://asyncapi.com/definitions/2.5.0/tag.json" - }, - "uniqueItems": true - }, - "externalDocs": { - "$ref": "http://asyncapi.com/definitions/2.5.0/externalDocs.json" - }, - "operationId": { - "type": "string" - }, - "bindings": { - "$ref": "http://asyncapi.com/definitions/2.5.0/bindingsObject.json" + } }, - "message": { - "$ref": "http://asyncapi.com/definitions/2.5.0/message.json" + "traits": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.5.0/Reference.json" + }, + { + "$ref": "http://asyncapi.com/definitions/2.5.0/operationTrait.json" + } + ] + } } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/operation.json" + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.5.0/specificationExtension.json" + } + }, + "additionalProperties": false } diff --git a/definitions/2.5.0/operationTrait.json b/definitions/2.5.0/operationTrait.json index 6bf07d9a..d958951b 100644 --- a/definitions/2.5.0/operationTrait.json +++ b/definitions/2.5.0/operationTrait.json @@ -1,24 +1,13 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.0/operationTrait.json", "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.5.0/specificationExtension.json" - } - }, "properties": { - "summary": { - "type": "string" - }, "description": { "type": "string" }, - "tags": { - "type": "array", - "items": { - "$ref": "http://asyncapi.com/definitions/2.5.0/tag.json" - }, - "uniqueItems": true + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.5.0/bindingsObject.json" }, "externalDocs": { "$ref": "http://asyncapi.com/definitions/2.5.0/externalDocs.json" @@ -32,10 +21,21 @@ "$ref": "http://asyncapi.com/definitions/2.5.0/SecurityRequirement.json" } }, - "bindings": { - "$ref": "http://asyncapi.com/definitions/2.5.0/bindingsObject.json" + "summary": { + "type": "string" + }, + "tags": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "http://asyncapi.com/definitions/2.5.0/tag.json" + } } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/operationTrait.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.5.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.5.0/parameter.json b/definitions/2.5.0/parameter.json index 8feb89c1..0fbd6a20 100644 --- a/definitions/2.5.0/parameter.json +++ b/definitions/2.5.0/parameter.json @@ -1,24 +1,24 @@ { - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.5.0/specificationExtension.json" - } - }, + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.0/parameter.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.5.0/schema.json" + "description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed.", + "type": "string" }, "location": { - "type": "string", "description": "A runtime expression that specifies the location of the parameter value", + "type": "string", "pattern": "^\\$message\\.(header|payload)#(\\/(([^\\/~])|(~[01]))*)*" + }, + "schema": { + "$ref": "http://asyncapi.com/definitions/2.5.0/schema.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/parameter.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.5.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.5.0/parameters.json b/definitions/2.5.0/parameters.json index 0b427834..9d6d3644 100644 --- a/definitions/2.5.0/parameters.json +++ b/definitions/2.5.0/parameters.json @@ -1,4 +1,7 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.0/parameters.json", + "description": "JSON objects describing re-usable channel parameters.", "type": "object", "additionalProperties": { "oneOf": [ @@ -9,8 +12,5 @@ "$ref": "http://asyncapi.com/definitions/2.5.0/parameter.json" } ] - }, - "description": "JSON objects describing re-usable channel parameters.", - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/parameters.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.5.0/schema.json b/definitions/2.5.0/schema.json index 055796a9..89b3b0ea 100644 --- a/definitions/2.5.0/schema.json +++ b/definitions/2.5.0/schema.json @@ -1,40 +1,15 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.0/schema.json", "allOf": [ { "$ref": "http://json-schema.org/draft-07/schema#" }, { - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.5.0/specificationExtension.json" - } - }, "properties": { - "additionalProperties": { - "anyOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.5.0/schema.json" - }, - { - "type": "boolean" - } - ], - "default": {} - }, - "items": { - "anyOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.5.0/schema.json" - }, - { - "type": "array", - "minItems": 1, - "items": { - "$ref": "http://asyncapi.com/definitions/2.5.0/schema.json" - } - } - ], - "default": {} + "deprecated": { + "default": false, + "type": "boolean" }, "allOf": { "type": "array", @@ -43,14 +18,14 @@ "$ref": "http://asyncapi.com/definitions/2.5.0/schema.json" } }, - "oneOf": { + "anyOf": { "type": "array", "minItems": 1, "items": { "$ref": "http://asyncapi.com/definitions/2.5.0/schema.json" } }, - "anyOf": { + "oneOf": { "type": "array", "minItems": 1, "items": { @@ -60,39 +35,64 @@ "not": { "$ref": "http://asyncapi.com/definitions/2.5.0/schema.json" }, + "contains": { + "$ref": "http://asyncapi.com/definitions/2.5.0/schema.json" + }, + "items": { + "default": {}, + "anyOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.5.0/schema.json" + }, + { + "type": "array", + "minItems": 1, + "items": { + "$ref": "http://asyncapi.com/definitions/2.5.0/schema.json" + } + } + ] + }, + "propertyNames": { + "$ref": "http://asyncapi.com/definitions/2.5.0/schema.json" + }, "properties": { + "default": {}, "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.5.0/schema.json" - }, - "default": {} + } }, "patternProperties": { + "default": {}, "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.5.0/schema.json" - }, - "default": {} - }, - "propertyNames": { - "$ref": "http://asyncapi.com/definitions/2.5.0/schema.json" + } }, - "contains": { - "$ref": "http://asyncapi.com/definitions/2.5.0/schema.json" + "additionalProperties": { + "default": {}, + "anyOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.5.0/schema.json" + }, + { + "type": "boolean" + } + ] }, "discriminator": { "type": "string" }, "externalDocs": { "$ref": "http://asyncapi.com/definitions/2.5.0/externalDocs.json" - }, - "deprecated": { - "type": "boolean", - "default": false + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.5.0/specificationExtension.json" } } } - ], - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/schema.json" -} \ No newline at end of file + ] +} diff --git a/definitions/2.5.0/schemas.json b/definitions/2.5.0/schemas.json index 6dfad569..755de425 100644 --- a/definitions/2.5.0/schemas.json +++ b/definitions/2.5.0/schemas.json @@ -1,9 +1,9 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.0/schemas.json", + "description": "JSON objects describing schemas the API uses.", "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.5.0/schema.json" - }, - "description": "JSON objects describing schemas the API uses.", - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/schemas.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.5.0/server.json b/definitions/2.5.0/server.json index f469bbb6..45a5f61b 100644 --- a/definitions/2.5.0/server.json +++ b/definitions/2.5.0/server.json @@ -1,50 +1,50 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.0/server.json", "description": "An object representing a Server.", + "type": "object", "required": [ "url", "protocol" ], - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.5.0/specificationExtension.json" - } - }, "properties": { - "url": { - "type": "string" - }, "description": { "type": "string" }, + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.5.0/bindingsObject.json" + }, "protocol": { - "type": "string", - "description": "The transfer protocol." + "description": "The transfer protocol.", + "type": "string" }, "protocolVersion": { "type": "string" }, - "variables": { - "$ref": "http://asyncapi.com/definitions/2.5.0/serverVariables.json" - }, "security": { "type": "array", "items": { "$ref": "http://asyncapi.com/definitions/2.5.0/SecurityRequirement.json" } }, - "bindings": { - "$ref": "http://asyncapi.com/definitions/2.5.0/bindingsObject.json" - }, "tags": { "type": "array", + "uniqueItems": true, "items": { "$ref": "http://asyncapi.com/definitions/2.5.0/tag.json" - }, - "uniqueItems": true + } + }, + "url": { + "type": "string" + }, + "variables": { + "$ref": "http://asyncapi.com/definitions/2.5.0/serverVariables.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/server.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.5.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.5.0/serverVariable.json b/definitions/2.5.0/serverVariable.json index 75b44b2d..e0f2ea4f 100644 --- a/definitions/2.5.0/serverVariable.json +++ b/definitions/2.5.0/serverVariable.json @@ -1,33 +1,33 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.0/serverVariable.json", "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.5.0/specificationExtension.json" - } - }, + "type": "object", "properties": { - "enum": { + "description": { + "type": "string" + }, + "examples": { "type": "array", "items": { "type": "string" - }, - "uniqueItems": true + } }, "default": { "type": "string" }, - "description": { - "type": "string" - }, - "examples": { + "enum": { "type": "array", + "uniqueItems": true, "items": { "type": "string" } } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/serverVariable.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.5.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.5.0/serverVariables.json b/definitions/2.5.0/serverVariables.json index f030c344..97a48536 100644 --- a/definitions/2.5.0/serverVariables.json +++ b/definitions/2.5.0/serverVariables.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.0/serverVariables.json", "type": "object", "additionalProperties": { "oneOf": [ @@ -9,7 +11,5 @@ "$ref": "http://asyncapi.com/definitions/2.5.0/serverVariable.json" } ] - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/serverVariables.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.5.0/servers.json b/definitions/2.5.0/servers.json index 1c5059cb..e194835a 100644 --- a/definitions/2.5.0/servers.json +++ b/definitions/2.5.0/servers.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.0/servers.json", "description": "An object representing multiple servers.", "type": "object", "additionalProperties": { @@ -10,7 +12,5 @@ "$ref": "http://asyncapi.com/definitions/2.5.0/server.json" } ] - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/servers.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.5.0/specificationExtension.json b/definitions/2.5.0/specificationExtension.json index 79df0d63..a0729c24 100644 --- a/definitions/2.5.0/specificationExtension.json +++ b/definitions/2.5.0/specificationExtension.json @@ -1,7 +1,7 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.0/specificationExtension.json", "description": "Any property starting with x- is valid.", - "additionalProperties": true, "additionalItems": true, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/specificationExtension.json" -} \ No newline at end of file + "additionalProperties": true +} diff --git a/definitions/2.5.0/symmetricEncryption.json b/definitions/2.5.0/symmetricEncryption.json index b1f29e36..e6c7cff6 100644 --- a/definitions/2.5.0/symmetricEncryption.json +++ b/definitions/2.5.0/symmetricEncryption.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.0/symmetricEncryption.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "symmetricEncryption" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,7 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.5.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/symmetricEncryption.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.5.0/tag.json b/definitions/2.5.0/tag.json index 91f99d49..cbaf6971 100644 --- a/definitions/2.5.0/tag.json +++ b/definitions/2.5.0/tag.json @@ -1,18 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.0/tag.json", "type": "object", - "additionalProperties": false, "required": [ "name" ], "properties": { - "name": { - "type": "string" - }, "description": { "type": "string" }, "externalDocs": { "$ref": "http://asyncapi.com/definitions/2.5.0/externalDocs.json" + }, + "name": { + "type": "string" } }, "patternProperties": { @@ -20,6 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.5.0/specificationExtension.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/tag.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.5.0/userPassword.json b/definitions/2.5.0/userPassword.json index 74342059..113f8eb3 100644 --- a/definitions/2.5.0/userPassword.json +++ b/definitions/2.5.0/userPassword.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.5.0/userPassword.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "userPassword" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,7 +21,5 @@ "$ref": "http://asyncapi.com/definitions/2.5.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.5.0/userPassword.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.6.0/APIKeyHTTPSecurityScheme.json b/definitions/2.6.0/APIKeyHTTPSecurityScheme.json index b0eb58fc..fb050db1 100644 --- a/definitions/2.6.0/APIKeyHTTPSecurityScheme.json +++ b/definitions/2.6.0/APIKeyHTTPSecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/APIKeyHTTPSecurityScheme.json", "type": "object", "required": [ "type", @@ -6,29 +8,29 @@ "in" ], "properties": { + "description": { + "description": "A short description for security scheme.", + "type": "string" + }, "type": { - "type": "string", "description": "The type of the security scheme. ", + "type": "string", "enum": [ "httpApiKey" ] }, - "name": { - "type": "string", - "description": "The name of the header, query or cookie parameter to be used." - }, "in": { - "type": "string", "description": "The location of the API key. ", + "type": "string", "enum": [ "header", "query", "cookie" ] }, - "description": { - "type": "string", - "description": "A short description for security scheme." + "name": { + "description": "The name of the header, query or cookie parameter to be used.", + "type": "string" } }, "patternProperties": { @@ -36,10 +38,8 @@ "$ref": "http://asyncapi.com/definitions/2.6.0/specificationExtension.json" } }, + "additionalProperties": false, "example": { "$ref": "http://asyncapi.com/examples/2.6.0/APIKeyHTTPSecurityScheme.json" - }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/APIKeyHTTPSecurityScheme.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.6.0/BearerHTTPSecurityScheme.json b/definitions/2.6.0/BearerHTTPSecurityScheme.json index edede767..5b52827d 100644 --- a/definitions/2.6.0/BearerHTTPSecurityScheme.json +++ b/definitions/2.6.0/BearerHTTPSecurityScheme.json @@ -1,31 +1,33 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/BearerHTTPSecurityScheme.json", "type": "object", "required": [ "type", "scheme" ], "properties": { - "scheme": { + "description": { + "description": "A short description for security scheme.", + "type": "string" + }, + "type": { + "description": "The type of the security scheme. ", "type": "string", - "description": "The name of the HTTP Authorization scheme to be used in the Authorization header as defined in RFC7235.", "enum": [ - "bearer" + "http" ] }, "bearerFormat": { - "type": "string", - "description": "A hint to the client to identify how the bearer token is formatted." + "description": "A hint to the client to identify how the bearer token is formatted.", + "type": "string" }, - "type": { + "scheme": { + "description": "The name of the HTTP Authorization scheme to be used in the Authorization header as defined in RFC7235.", "type": "string", - "description": "The type of the security scheme. ", "enum": [ - "http" + "bearer" ] - }, - "description": { - "type": "string", - "description": "A short description for security scheme." } }, "patternProperties": { @@ -33,7 +35,5 @@ "$ref": "http://asyncapi.com/definitions/2.6.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/BearerHTTPSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.6.0/HTTPSecurityScheme.json b/definitions/2.6.0/HTTPSecurityScheme.json index af1cfbc3..8e087777 100644 --- a/definitions/2.6.0/HTTPSecurityScheme.json +++ b/definitions/2.6.0/HTTPSecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/HTTPSecurityScheme.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/2.6.0/NonBearerHTTPSecurityScheme.json" @@ -9,7 +11,5 @@ { "$ref": "http://asyncapi.com/definitions/2.6.0/APIKeyHTTPSecurityScheme.json" } - ], - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/HTTPSecurityScheme.json" -} \ No newline at end of file + ] +} diff --git a/definitions/2.6.0/NonBearerHTTPSecurityScheme.json b/definitions/2.6.0/NonBearerHTTPSecurityScheme.json index 45cf74d7..fea5945b 100644 --- a/definitions/2.6.0/NonBearerHTTPSecurityScheme.json +++ b/definitions/2.6.0/NonBearerHTTPSecurityScheme.json @@ -1,36 +1,38 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/NonBearerHTTPSecurityScheme.json", + "type": "object", "not": { "type": "object", "properties": { "scheme": { - "type": "string", "description": "A short description for security scheme.", + "type": "string", "enum": [ "bearer" ] } } }, - "type": "object", "required": [ "scheme", "type" ], "properties": { - "scheme": { - "type": "string", - "description": "The name of the HTTP Authorization scheme to be used in the Authorization header as defined in RFC7235." - }, "description": { - "type": "string", - "description": "A short description for security scheme." + "description": "A short description for security scheme.", + "type": "string" }, "type": { - "type": "string", "description": "The type of the security scheme. ", + "type": "string", "enum": [ "http" ] + }, + "scheme": { + "description": "The name of the HTTP Authorization scheme to be used in the Authorization header as defined in RFC7235.", + "type": "string" } }, "patternProperties": { @@ -38,7 +40,5 @@ "$ref": "http://asyncapi.com/definitions/2.6.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/NonBearerHTTPSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.6.0/Reference.json b/definitions/2.6.0/Reference.json index b02bba4f..c7af2232 100644 --- a/definitions/2.6.0/Reference.json +++ b/definitions/2.6.0/Reference.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/Reference.json", "type": "object", "required": [ "$ref" @@ -7,7 +9,5 @@ "$ref": { "$ref": "http://asyncapi.com/definitions/2.6.0/ReferenceObject.json" } - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/Reference.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.6.0/ReferenceObject.json b/definitions/2.6.0/ReferenceObject.json index c8016b37..f1fe7c9e 100644 --- a/definitions/2.6.0/ReferenceObject.json +++ b/definitions/2.6.0/ReferenceObject.json @@ -1,10 +1,10 @@ { - "type": "string", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/ReferenceObject.json", "description": "A simple object to allow referencing other components in the specification, internally and externally.", + "type": "string", "format": "uri-reference", "example": { "$ref": "http://asyncapi.com/examples/2.6.0/ReferenceObject.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/ReferenceObject.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.6.0/SaslGssapiSecurityScheme.json b/definitions/2.6.0/SaslGssapiSecurityScheme.json index 7d880921..de88f323 100644 --- a/definitions/2.6.0/SaslGssapiSecurityScheme.json +++ b/definitions/2.6.0/SaslGssapiSecurityScheme.json @@ -1,19 +1,21 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/SaslGssapiSecurityScheme.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "description": "A short description for security scheme.", + "type": "string" + }, "type": { - "type": "string", "description": "The type of the security scheme.", + "type": "string", "enum": [ "gssapi" ] - }, - "description": { - "type": "string", - "description": "A short description for security scheme." } }, "patternProperties": { @@ -21,10 +23,8 @@ "$ref": "http://asyncapi.com/definitions/2.6.0/specificationExtension.json" } }, - "example": { - "$ref": "http://asyncapi.com/examples/2.6.0/Sasl.json" - }, "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/SaslGssapiSecurityScheme.json" -} \ No newline at end of file + "example": { + "$ref": "http://asyncapi.com/examples/2.6.0/Sasl.json" + } +} diff --git a/definitions/2.6.0/SaslPlainSecurityScheme.json b/definitions/2.6.0/SaslPlainSecurityScheme.json index a830e8fa..c2fa7b35 100644 --- a/definitions/2.6.0/SaslPlainSecurityScheme.json +++ b/definitions/2.6.0/SaslPlainSecurityScheme.json @@ -1,19 +1,21 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/SaslPlainSecurityScheme.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "description": "A short description for security scheme.", + "type": "string" + }, "type": { - "type": "string", "description": "The type of the security scheme. Valid values", + "type": "string", "enum": [ "plain" ] - }, - "description": { - "type": "string", - "description": "A short description for security scheme." } }, "patternProperties": { @@ -21,10 +23,8 @@ "$ref": "http://asyncapi.com/definitions/2.6.0/specificationExtension.json" } }, + "additionalProperties": false, "example": { "$ref": "http://asyncapi.com/examples/2.6.0/Sasl.json" - }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/SaslPlainSecurityScheme.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.6.0/SaslScramSecurityScheme.json b/definitions/2.6.0/SaslScramSecurityScheme.json index 8cfaad36..6e607c70 100644 --- a/definitions/2.6.0/SaslScramSecurityScheme.json +++ b/definitions/2.6.0/SaslScramSecurityScheme.json @@ -1,20 +1,22 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/SaslScramSecurityScheme.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "description": "A short description for security scheme.", + "type": "string" + }, "type": { - "type": "string", "description": "The type of the security scheme.", + "type": "string", "enum": [ "scramSha256", "scramSha512" ] - }, - "description": { - "type": "string", - "description": "A short description for security scheme." } }, "patternProperties": { @@ -22,10 +24,8 @@ "$ref": "http://asyncapi.com/definitions/2.6.0/specificationExtension.json" } }, + "additionalProperties": false, "example": { "$ref": "http://asyncapi.com/examples/2.6.0/Sasl.json" - }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/SaslScramSecurityScheme.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.6.0/SaslSecurityScheme.json b/definitions/2.6.0/SaslSecurityScheme.json index 184550f4..66e9126c 100644 --- a/definitions/2.6.0/SaslSecurityScheme.json +++ b/definitions/2.6.0/SaslSecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/SaslSecurityScheme.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/2.6.0/SaslPlainSecurityScheme.json" @@ -9,7 +11,5 @@ { "$ref": "http://asyncapi.com/definitions/2.6.0/SaslGssapiSecurityScheme.json" } - ], - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/SaslSecurityScheme.json" -} \ No newline at end of file + ] +} diff --git a/definitions/2.6.0/SecurityRequirement.json b/definitions/2.6.0/SecurityRequirement.json index 2f420459..290221de 100644 --- a/definitions/2.6.0/SecurityRequirement.json +++ b/definitions/2.6.0/SecurityRequirement.json @@ -1,16 +1,16 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/SecurityRequirement.json", "description": "Lists of the required security schemes that can be used to execute an operation", + "type": "object", "additionalProperties": { "type": "array", + "uniqueItems": true, "items": { "type": "string" - }, - "uniqueItems": true + } }, "example": { "$ref": "http://asyncapi.com/examples/2.6.0/SecurityRequirement.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/SecurityRequirement.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.6.0/SecurityScheme.json b/definitions/2.6.0/SecurityScheme.json index 33cc504f..9b90952f 100644 --- a/definitions/2.6.0/SecurityScheme.json +++ b/definitions/2.6.0/SecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/SecurityScheme.json", "description": "Defines a security scheme that can be used by the operations.", "oneOf": [ { @@ -31,7 +33,5 @@ ], "example": { "$ref": "http://asyncapi.com/examples/2.6.0/SecurityScheme.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/SecurityScheme.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.6.0/X509.json b/definitions/2.6.0/X509.json index c936b444..29528d6e 100644 --- a/definitions/2.6.0/X509.json +++ b/definitions/2.6.0/X509.json @@ -1,19 +1,21 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/X509.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "description": "A short description for security scheme.", + "type": "string" + }, "type": { + "description": "The type of the security scheme.", "type": "string", "enum": [ "X509" - ], - "description": "The type of the security scheme." - }, - "description": { - "type": "string", - "description": "A short description for security scheme." + ] } }, "patternProperties": { @@ -21,10 +23,8 @@ "$ref": "http://asyncapi.com/definitions/2.6.0/specificationExtension.json" } }, + "additionalProperties": false, "example": { "$ref": "http://asyncapi.com/examples/2.6.0/X509.json" - }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/X509.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.6.0/apiKey.json b/definitions/2.6.0/apiKey.json index 555c5cc1..f473383a 100644 --- a/definitions/2.6.0/apiKey.json +++ b/definitions/2.6.0/apiKey.json @@ -1,28 +1,30 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/apiKey.json", "type": "object", "required": [ "type", "in" ], "properties": { + "description": { + "description": "A short description for security scheme.", + "type": "string" + }, "type": { - "type": "string", "description": "The type of the security scheme.", + "type": "string", "enum": [ "apiKey" ] }, "in": { - "type": "string", "description": "The location of the API key. ", + "type": "string", "enum": [ "user", "password" ] - }, - "description": { - "type": "string", - "description": "A short description for security scheme." } }, "patternProperties": { @@ -30,10 +32,8 @@ "$ref": "http://asyncapi.com/definitions/2.6.0/specificationExtension.json" } }, + "additionalProperties": false, "example": { "$ref": "http://asyncapi.com/examples/2.6.0/apiKey.json" - }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/apiKey.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.6.0/asymmetricEncryption.json b/definitions/2.6.0/asymmetricEncryption.json index 9fdc6839..e9921767 100644 --- a/definitions/2.6.0/asymmetricEncryption.json +++ b/definitions/2.6.0/asymmetricEncryption.json @@ -1,19 +1,21 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/asymmetricEncryption.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "description": "A short description for security scheme.", + "type": "string" + }, "type": { - "type": "string", "description": "The type of the security scheme.", + "type": "string", "enum": [ "asymmetricEncryption" ] - }, - "description": { - "type": "string", - "description": "A short description for security scheme." } }, "patternProperties": { @@ -21,7 +23,5 @@ "$ref": "http://asyncapi.com/definitions/2.6.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/asymmetricEncryption.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.6.0/asyncapi.json b/definitions/2.6.0/asyncapi.json index 54ec9d91..051fddd9 100644 --- a/definitions/2.6.0/asyncapi.json +++ b/definitions/2.6.0/asyncapi.json @@ -1,56 +1,56 @@ { - "title": "AsyncAPI 2.6.0 schema.", "$schema": "http://json-schema.org/draft-07/schema#", "$id": "http://asyncapi.com/definitions/2.6.0/asyncapi.json", + "title": "AsyncAPI 2.6.0 schema.", "type": "object", "required": [ "asyncapi", "info", "channels" ], - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.6.0/specificationExtension.json" - } - }, "properties": { + "id": { + "description": "A unique id representing the application.", + "type": "string", + "format": "uri" + }, "asyncapi": { + "description": "The AsyncAPI specification version of this document.", "type": "string", "enum": [ "2.6.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.6.0/info.json" + "channels": { + "$ref": "http://asyncapi.com/definitions/2.6.0/channels.json" }, - "servers": { - "$ref": "http://asyncapi.com/definitions/2.6.0/servers.json" + "components": { + "$ref": "http://asyncapi.com/definitions/2.6.0/components.json" }, "defaultContentType": { "type": "string" }, - "channels": { - "$ref": "http://asyncapi.com/definitions/2.6.0/channels.json" + "externalDocs": { + "$ref": "http://asyncapi.com/definitions/2.6.0/externalDocs.json" }, - "components": { - "$ref": "http://asyncapi.com/definitions/2.6.0/components.json" + "info": { + "$ref": "http://asyncapi.com/definitions/2.6.0/info.json" + }, + "servers": { + "$ref": "http://asyncapi.com/definitions/2.6.0/servers.json" }, "tags": { "type": "array", + "uniqueItems": true, "items": { "$ref": "http://asyncapi.com/definitions/2.6.0/tag.json" - }, - "uniqueItems": true - }, - "externalDocs": { - "$ref": "http://asyncapi.com/definitions/2.6.0/externalDocs.json" + } } - } -} \ No newline at end of file + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.6.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.6.0/avroSchema_v1.json b/definitions/2.6.0/avroSchema_v1.json index f215bdaa..072d353c 100644 --- a/definitions/2.6.0/avroSchema_v1.json +++ b/definitions/2.6.0/avroSchema_v1.json @@ -1,220 +1,131 @@ { "$schema": "http://json-schema.org/draft-07/schema#", "$id": "http://asyncapi.com/definitions/2.6.0/avroSchema_v1.json", + "title": "Avro Schema Definition", + "description": "Json-Schema definition for Avro AVSC files.", + "oneOf": [ + { + "$ref": "#/definitions/avroSchema" + } + ], "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.", + "avroArray": { + "title": "Array", + "description": "An array", "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", + "type", + "items" + ], "properties": { - "name": { - "$ref": "#/definitions/name" - }, "type": { - "$ref": "#/definitions/types" - }, - "doc": { - "type": "string" + "type": "string", + "const": "array" }, - "default": true, - "order": { - "enum": [ - "ascending", - "descending", - "ignore" - ] + "items": { + "$ref": "#/definitions/types" }, "aliases": { "type": "array", "items": { "$ref": "#/definitions/name" } - } - }, - "required": [ - "name", - "type" - ] - }, - "avroRecord": { - "title": "Record", - "description": "A Record", - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "record" + }, + "doc": { + "type": "string" }, "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", + "required": [ + "type", + "name", + "symbols" + ], "properties": { "type": { "type": "string", "const": "enum" }, + "aliases": { + "type": "array", + "items": { + "$ref": "#/definitions/name" + } + }, + "doc": { + "type": "string" + }, "name": { "$ref": "#/definitions/name" }, "namespace": { "$ref": "#/definitions/namespace" }, - "doc": { - "type": "string" - }, - "aliases": { + "symbols": { "type": "array", "items": { "$ref": "#/definitions/name" } + } + } + }, + "avroField": { + "title": "Field", + "description": "A field within a Record", + "type": "object", + "required": [ + "name", + "type" + ], + "properties": { + "default": true, + "type": { + "$ref": "#/definitions/types" }, - "symbols": { + "aliases": { "type": "array", "items": { "$ref": "#/definitions/name" } + }, + "doc": { + "type": "string" + }, + "name": { + "$ref": "#/definitions/name" + }, + "order": { + "enum": [ + "ascending", + "descending", + "ignore" + ] } - }, + } + }, + "avroFixed": { + "title": "Fixed", + "description": "A fixed sized array of bytes", + "type": "object", "required": [ "type", "name", - "symbols" - ] - }, - "avroArray": { - "title": "Array", - "description": "An array", - "type": "object", + "size" + ], "properties": { "type": { "type": "string", - "const": "array" - }, - "name": { - "$ref": "#/definitions/name" - }, - "namespace": { - "$ref": "#/definitions/namespace" - }, - "doc": { - "type": "string" + "const": "fixed" }, "aliases": { "type": "array", @@ -222,82 +133,117 @@ "$ref": "#/definitions/name" } }, - "items": { - "$ref": "#/definitions/types" + "doc": { + "type": "string" + }, + "name": { + "$ref": "#/definitions/name" + }, + "namespace": { + "$ref": "#/definitions/namespace" + }, + "size": { + "type": "number" } - }, - "required": [ - "type", - "items" - ] + } }, "avroMap": { "title": "Map", "description": "A map of values", "type": "object", + "required": [ + "type", + "values" + ], "properties": { "type": { "type": "string", "const": "map" }, - "name": { - "$ref": "#/definitions/name" - }, - "namespace": { - "$ref": "#/definitions/namespace" - }, - "doc": { - "type": "string" - }, "aliases": { "type": "array", "items": { "$ref": "#/definitions/name" } }, + "doc": { + "type": "string" + }, + "name": { + "$ref": "#/definitions/name" + }, + "namespace": { + "$ref": "#/definitions/namespace" + }, "values": { "$ref": "#/definitions/types" } - }, - "required": [ - "type", - "values" - ] + } }, - "avroFixed": { - "title": "Fixed", - "description": "A fixed sized array of bytes", + "avroRecord": { + "title": "Record", + "description": "A Record", "type": "object", + "required": [ + "type", + "name", + "fields" + ], "properties": { "type": { "type": "string", - "const": "fixed" - }, - "name": { - "$ref": "#/definitions/name" + "const": "record" }, - "namespace": { - "$ref": "#/definitions/namespace" + "aliases": { + "type": "array", + "items": { + "$ref": "#/definitions/name" + } }, "doc": { "type": "string" }, - "aliases": { + "fields": { "type": "array", "items": { - "$ref": "#/definitions/name" + "$ref": "#/definitions/avroField" } }, - "size": { - "type": "number" + "name": { + "$ref": "#/definitions/name" + }, + "namespace": { + "$ref": "#/definitions/namespace" + } + } + }, + "avroSchema": { + "title": "Avro Schema", + "description": "Root Schema", + "oneOf": [ + { + "$ref": "#/definitions/types" } - }, - "required": [ - "type", - "name", - "size" ] }, + "avroUnion": { + "title": "Union", + "description": "A Union of types", + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/definitions/avroSchema" + } + }, + "customTypeReference": { + "title": "Custom Type", + "description": "Reference to a ComplexType", + "type": "string", + "not": { + "$ref": "#/definitions/primitiveType" + }, + "pattern": "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$" + }, "name": { "type": "string", "pattern": "^[A-Za-z_][A-Za-z0-9_]*$" @@ -305,13 +251,67 @@ "namespace": { "type": "string", "pattern": "^([A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*)*$" + }, + "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", + "required": [ + "type" + ], + "properties": { + "type": { + "$ref": "#/definitions/primitiveType" + } + } + }, + "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" + } + ] } - }, - "description": "Json-Schema definition for Avro AVSC files.", - "oneOf": [ - { - "$ref": "#/definitions/avroSchema" - } - ], - "title": "Avro Schema Definition" -} \ No newline at end of file + } +} diff --git a/definitions/2.6.0/bindingsObject.json b/definitions/2.6.0/bindingsObject.json index 611a87b8..0adec8e0 100644 --- a/definitions/2.6.0/bindingsObject.json +++ b/definitions/2.6.0/bindingsObject.json @@ -1,27 +1,27 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/bindingsObject.json", "description": "Map describing protocol-specific definitions for a server.", - "additionalProperties": true, + "type": "object", "properties": { - "http": {}, - "ws": {}, "amqp": {}, "amqp1": {}, + "anypointmq": {}, + "googlepubsub": {}, + "http": {}, + "ibmmq": {}, + "jms": {}, + "kafka": {}, "mqtt": {}, "mqtt5": {}, - "kafka": {}, - "anypointmq": {}, "nats": {}, - "jms": {}, + "pulsar": {}, + "redis": {}, "sns": {}, + "solace": {}, "sqs": {}, "stomp": {}, - "redis": {}, - "ibmmq": {}, - "solace": {}, - "googlepubsub": {}, - "pulsar": {} + "ws": {} }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/bindingsObject.json" -} \ No newline at end of file + "additionalProperties": true +} diff --git a/definitions/2.6.0/channelItem.json b/definitions/2.6.0/channelItem.json index 75487cad..77679ca0 100644 --- a/definitions/2.6.0/channelItem.json +++ b/definitions/2.6.0/channelItem.json @@ -1,48 +1,48 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/channelItem.json", "description": "Describes the operations available on a single channel.", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.6.0/specificationExtension.json" - } - }, + "type": "object", "properties": { + "description": { + "description": "A description of the channel.", + "type": "string" + }, + "deprecated": { + "default": false, + "type": "boolean" + }, "$ref": { "$ref": "http://asyncapi.com/definitions/2.6.0/ReferenceObject.json" }, + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.6.0/bindingsObject.json" + }, "parameters": { "$ref": "http://asyncapi.com/definitions/2.6.0/parameters.json" }, - "description": { - "type": "string", - "description": "A description of the channel." + "publish": { + "$ref": "http://asyncapi.com/definitions/2.6.0/operation.json" }, "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.", + "type": "array", + "uniqueItems": true, "items": { "type": "string" - }, - "uniqueItems": true - }, - "publish": { - "$ref": "http://asyncapi.com/definitions/2.6.0/operation.json" + } }, "subscribe": { "$ref": "http://asyncapi.com/definitions/2.6.0/operation.json" - }, - "deprecated": { - "type": "boolean", - "default": false - }, - "bindings": { - "$ref": "http://asyncapi.com/definitions/2.6.0/bindingsObject.json" } }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.6.0/specificationExtension.json" + } + }, + "additionalProperties": false, "example": { "$ref": "http://asyncapi.com/examples/2.6.0/channelItem.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/channelItem.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.6.0/channels.json b/definitions/2.6.0/channels.json index aec983ab..8cdec72d 100644 --- a/definitions/2.6.0/channels.json +++ b/definitions/2.6.0/channels.json @@ -1,6 +1,8 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/channels.json", "description": "Holds the relative paths to the individual channel and their operations. Channel paths are relative to servers.", + "type": "object", "propertyNames": { "type": "string", "format": "uri-template", @@ -11,7 +13,5 @@ }, "example": { "$ref": "http://asyncapi.com/examples/2.6.0/channels.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/channels.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.6.0/components.json b/definitions/2.6.0/components.json index 1da80623..fdfb73a1 100644 --- a/definitions/2.6.0/components.json +++ b/definitions/2.6.0/components.json @@ -1,45 +1,17 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/components.json", "description": "Holds a set of reusable objects for different aspects of the AsyncAPI specification. All objects defined within the components object will have no effect on the API unless they are explicitly referenced from properties outside the components object.", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.6.0/specificationExtension.json" - } - }, + "type": "object", "properties": { - "schemas": { - "$ref": "http://asyncapi.com/definitions/2.6.0/schemas.json" - }, - "servers": { - "$ref": "http://asyncapi.com/definitions/2.6.0/servers.json" - }, - "channels": { - "$ref": "http://asyncapi.com/definitions/2.6.0/channels.json" - }, - "serverVariables": { - "$ref": "http://asyncapi.com/definitions/2.6.0/serverVariables.json" - }, - "messages": { - "$ref": "http://asyncapi.com/definitions/2.6.0/messages.json" - }, - "securitySchemes": { + "channelBindings": { "type": "object", - "patternProperties": { - "^[\\w\\d\\.\\-_]+$": { - "oneOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.6.0/Reference.json" - }, - { - "$ref": "http://asyncapi.com/definitions/2.6.0/SecurityScheme.json" - } - ] - } + "additionalProperties": { + "$ref": "http://asyncapi.com/definitions/2.6.0/bindingsObject.json" } }, - "parameters": { - "$ref": "http://asyncapi.com/definitions/2.6.0/parameters.json" + "channels": { + "$ref": "http://asyncapi.com/definitions/2.6.0/channels.json" }, "correlationIds": { "type": "object", @@ -56,10 +28,10 @@ } } }, - "operationTraits": { + "messageBindings": { "type": "object", "additionalProperties": { - "$ref": "http://asyncapi.com/definitions/2.6.0/operationTrait.json" + "$ref": "http://asyncapi.com/definitions/2.6.0/bindingsObject.json" } }, "messageTraits": { @@ -68,34 +40,62 @@ "$ref": "http://asyncapi.com/definitions/2.6.0/messageTrait.json" } }, - "serverBindings": { + "messages": { + "$ref": "http://asyncapi.com/definitions/2.6.0/messages.json" + }, + "operationBindings": { "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.6.0/bindingsObject.json" } }, - "channelBindings": { + "operationTraits": { "type": "object", "additionalProperties": { - "$ref": "http://asyncapi.com/definitions/2.6.0/bindingsObject.json" + "$ref": "http://asyncapi.com/definitions/2.6.0/operationTrait.json" } }, - "operationBindings": { + "parameters": { + "$ref": "http://asyncapi.com/definitions/2.6.0/parameters.json" + }, + "schemas": { + "$ref": "http://asyncapi.com/definitions/2.6.0/schemas.json" + }, + "securitySchemes": { "type": "object", - "additionalProperties": { - "$ref": "http://asyncapi.com/definitions/2.6.0/bindingsObject.json" + "patternProperties": { + "^[\\w\\d\\.\\-_]+$": { + "oneOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.6.0/Reference.json" + }, + { + "$ref": "http://asyncapi.com/definitions/2.6.0/SecurityScheme.json" + } + ] + } } }, - "messageBindings": { + "serverBindings": { "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.6.0/bindingsObject.json" } + }, + "serverVariables": { + "$ref": "http://asyncapi.com/definitions/2.6.0/serverVariables.json" + }, + "servers": { + "$ref": "http://asyncapi.com/definitions/2.6.0/servers.json" } }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.6.0/specificationExtension.json" + } + }, + "additionalProperties": false, "example": { "$ref": "http://asyncapi.com/examples/2.6.0/components.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/components.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.6.0/contact.json b/definitions/2.6.0/contact.json index 0f63b39a..aa18b9ac 100644 --- a/definitions/2.6.0/contact.json +++ b/definitions/2.6.0/contact.json @@ -1,21 +1,22 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/contact.json", "description": "Contact information for the exposed API.", - "additionalProperties": false, + "type": "object", "properties": { - "name": { + "email": { + "description": "The email address of the contact person/organization.", "type": "string", - "description": "The identifying name of the contact person/organization." + "format": "email" + }, + "name": { + "description": "The identifying name of the contact person/organization.", + "type": "string" }, "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" + "format": "uri" } }, "patternProperties": { @@ -23,9 +24,8 @@ "$ref": "http://asyncapi.com/definitions/2.6.0/specificationExtension.json" } }, + "additionalProperties": false, "example": { "$ref": "http://asyncapi.com/examples/2.6.0/contact.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/contact.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.6.0/correlationId.json b/definitions/2.6.0/correlationId.json index 96e680af..e666221c 100644 --- a/definitions/2.6.0/correlationId.json +++ b/definitions/2.6.0/correlationId.json @@ -1,29 +1,29 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/correlationId.json", "description": "An object that specifies an identifier at design time that can used for message tracing and correlation.", + "type": "object", "required": [ "location" ], - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.6.0/specificationExtension.json" - } - }, "properties": { "description": { - "type": "string", - "description": "A optional description of the correlation ID. GitHub Flavored Markdown is allowed." + "description": "A optional description of the correlation ID. GitHub Flavored Markdown is allowed.", + "type": "string" }, "location": { - "type": "string", "description": "A runtime expression that specifies the location of the correlation ID", + "type": "string", "pattern": "^\\$message\\.(header|payload)#(\\/(([^\\/~])|(~[01]))*)*" } }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.6.0/specificationExtension.json" + } + }, + "additionalProperties": false, "example": { "$ref": "http://asyncapi.com/examples/2.6.0/correlationId.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/correlationId.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.6.0/external.json b/definitions/2.6.0/external.json index ef5d35e8..dae3e315 100644 --- a/definitions/2.6.0/external.json +++ b/definitions/2.6.0/external.json @@ -1,5 +1,5 @@ { - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/http://something.example.com/schemas/external.json", - "type": "string" - } \ No newline at end of file + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/http://something.example.com/schemas/external.json", + "type": "string" +} diff --git a/definitions/2.6.0/externalDocs.json b/definitions/2.6.0/externalDocs.json index b760c0cf..8805c6aa 100644 --- a/definitions/2.6.0/externalDocs.json +++ b/definitions/2.6.0/externalDocs.json @@ -1,17 +1,20 @@ { - "type": "object", - "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/externalDocs.json", "description": "Allows referencing an external resource for extended documentation.", - "required": ["url"], + "type": "object", + "required": [ + "url" + ], "properties": { "description": { - "type": "string", - "description": "A short description of the target documentation." + "description": "A short description of the target documentation.", + "type": "string" }, "url": { + "description": "The URL for the target documentation. This MUST be in the form of an absolute URL.", "type": "string", - "format": "uri", - "description": "The URL for the target documentation. This MUST be in the form of an absolute URL." + "format": "uri" } }, "patternProperties": { @@ -19,9 +22,8 @@ "$ref": "http://asyncapi.com/definitions/2.6.0/specificationExtension.json" } }, + "additionalProperties": false, "example": { "$ref": "http://asyncapi.com/examples/2.6.0/externalDocs.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/externalDocs.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.6.0/info.json b/definitions/2.6.0/info.json index 2ad3c706..e05fe0d4 100644 --- a/definitions/2.6.0/info.json +++ b/definitions/2.6.0/info.json @@ -1,44 +1,44 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/info.json", "description": "The object provides metadata about the API. The metadata can be used by the clients if needed.", + "type": "object", "required": [ "version", "title" ], - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.6.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": "A unique and precise title of the API.", + "type": "string" }, "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" + "description": "A longer description of the API. Should be different from the title. CommonMark is allowed.", + "type": "string" }, "contact": { "$ref": "http://asyncapi.com/definitions/2.6.0/contact.json" }, "license": { "$ref": "http://asyncapi.com/definitions/2.6.0/license.json" + }, + "termsOfService": { + "description": "A URL to the Terms of Service for the API. MUST be in the format of a URL.", + "type": "string", + "format": "uri" + }, + "version": { + "description": "A semantic version number of the API.", + "type": "string" } }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.6.0/specificationExtension.json" + } + }, + "additionalProperties": false, "example": { "$ref": "http://asyncapi.com/examples/2.6.0/info.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/info.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.6.0/license.json b/definitions/2.6.0/license.json index 1021a7bf..e243759a 100644 --- a/definitions/2.6.0/license.json +++ b/definitions/2.6.0/license.json @@ -1,18 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/license.json", + "description": "License information for the exposed API.", "type": "object", "required": [ "name" ], - "description": "License information for the exposed API.", - "additionalProperties": false, "properties": { "name": { - "type": "string", - "description": "The name of the license type. It's encouraged to use an OSI compatible license." + "description": "The name of the license type. It's encouraged to use an OSI compatible license.", + "type": "string" }, "url": { - "type": "string", "description": "The URL pointing to the license.", + "type": "string", "format": "uri" } }, @@ -21,9 +22,8 @@ "$ref": "http://asyncapi.com/definitions/2.6.0/specificationExtension.json" } }, + "additionalProperties": false, "example": { "$ref": "http://asyncapi.com/examples/2.6.0/license.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/license.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.6.0/message.json b/definitions/2.6.0/message.json index 8069c607..92568687 100644 --- a/definitions/2.6.0/message.json +++ b/definitions/2.6.0/message.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/message.json", "description": "Describes a message received on a given channel and operation.", "oneOf": [ { @@ -8,8 +10,9 @@ "oneOf": [ { "type": "object", - "required": ["oneOf"], - "additionalProperties": false, + "required": [ + "oneOf" + ], "properties": { "oneOf": { "type": "array", @@ -17,131 +20,11 @@ "$ref": "http://asyncapi.com/definitions/2.6.0/message.json" } } - } + }, + "additionalProperties": false }, { "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.6.0/specificationExtension.json" - } - }, - "properties": { - "schemaFormat": { - "type": "string" - }, - "contentType": { - "type": "string" - }, - "headers": { - "allOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.6.0/schema.json" - }, - { - "properties": { - "type": { - "const": "object" - } - } - } - ] - }, - "messageId": { - "type": "string" - }, - "payload": {}, - "correlationId": { - "oneOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.6.0/Reference.json" - }, - { - "$ref": "http://asyncapi.com/definitions/2.6.0/correlationId.json" - } - ] - }, - "tags": { - "type": "array", - "items": { - "$ref": "http://asyncapi.com/definitions/2.6.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.6.0/externalDocs.json" - }, - "deprecated": { - "type": "boolean", - "default": false - }, - "examples": { - "type": "array", - "description": "List of examples.", - "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", - "description": "Schema definition of the application headers." - }, - "payload": { - "description": "Definition of the message payload. It can be of any type" - } - } - } - }, - "bindings": { - "$ref": "http://asyncapi.com/definitions/2.6.0/bindingsObject.json" - }, - "traits": { - "type": "array", - "items": { - "oneOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.6.0/Reference.json" - }, - { - "$ref": "http://asyncapi.com/definitions/2.6.0/messageTrait.json" - } - ] - } - } - }, "allOf": [ { "if": { @@ -230,8 +113,8 @@ "properties": { "schemaFormat": { "enum": [ - "application/vnd.oai.openapi;version=3.0.0", - "application/vnd.oai.openapi+json;version=3.0.0", + "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" ] } @@ -268,14 +151,137 @@ } } } - ] + ], + "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": { + "type": "object", + "anyOf": [ + { + "required": [ + "payload" + ] + }, + { + "required": [ + "headers" + ] + } + ], + "properties": { + "headers": { + "description": "Schema definition of the application headers.", + "type": "object" + }, + "name": { + "description": "Machine readable name of the message example.", + "type": "string" + }, + "payload": { + "description": "Definition of the message payload. It can be of any type" + }, + "summary": { + "description": "A brief summary of the message example.", + "type": "string" + } + }, + "additionalProperties": false + } + }, + "deprecated": { + "default": false, + "type": "boolean" + }, + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.6.0/bindingsObject.json" + }, + "contentType": { + "type": "string" + }, + "correlationId": { + "oneOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.6.0/Reference.json" + }, + { + "$ref": "http://asyncapi.com/definitions/2.6.0/correlationId.json" + } + ] + }, + "externalDocs": { + "$ref": "http://asyncapi.com/definitions/2.6.0/externalDocs.json" + }, + "headers": { + "allOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.6.0/schema.json" + }, + { + "properties": { + "type": { + "const": "object" + } + } + } + ] + }, + "messageId": { + "type": "string" + }, + "name": { + "description": "Name of the message.", + "type": "string" + }, + "payload": {}, + "schemaFormat": { + "type": "string" + }, + "summary": { + "description": "A brief summary of the message.", + "type": "string" + }, + "tags": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "http://asyncapi.com/definitions/2.6.0/tag.json" + } + }, + "traits": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.6.0/Reference.json" + }, + { + "$ref": "http://asyncapi.com/definitions/2.6.0/messageTrait.json" + } + ] + } + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.6.0/specificationExtension.json" + } + }, + "additionalProperties": false } ] } ], "example": { "$ref": "http://asyncapi.com/examples/2.6.0/message.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/message.json" + } } diff --git a/definitions/2.6.0/messageTrait.json b/definitions/2.6.0/messageTrait.json index cbdf2bcb..80dfc611 100644 --- a/definitions/2.6.0/messageTrait.json +++ b/definitions/2.6.0/messageTrait.json @@ -1,20 +1,78 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/messageTrait.json", "description": "Describes a trait that MAY be applied to a Message Object.", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.6.0/specificationExtension.json" - } - }, + "type": "object", "properties": { - "schemaFormat": { - "type": "string", - "description": "A string containing the name of the schema format/language used to define the message payload." + "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": { + "type": "object", + "anyOf": [ + { + "required": [ + "payload" + ] + }, + { + "required": [ + "headers" + ] + } + ], + "properties": { + "headers": { + "description": "Schema definition of the application headers.", + "type": "object" + }, + "name": { + "description": "Machine readable name of the message example.", + "type": "string" + }, + "payload": { + "description": "Definition of the message payload. It can be of any type" + }, + "summary": { + "description": "A brief summary of the message example.", + "type": "string" + } + }, + "additionalProperties": false + } + }, + "deprecated": { + "default": false, + "type": "boolean" + }, + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.6.0/bindingsObject.json" }, "contentType": { - "type": "string", - "description": "The content type to use when encoding/decoding a message's payload." + "description": "The content type to use when encoding/decoding a message's payload.", + "type": "string" + }, + "correlationId": { + "description": "Definition of the correlation ID used for message tracing or matching.", + "oneOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.6.0/Reference.json" + }, + { + "$ref": "http://asyncapi.com/definitions/2.6.0/correlationId.json" + } + ] + }, + "externalDocs": { + "$ref": "http://asyncapi.com/definitions/2.6.0/externalDocs.json" }, "headers": { "description": "Schema definition of the application headers.", @@ -32,91 +90,37 @@ ] }, "messageId": { - "type": "string", - "description": "Unique string used to identify the message. The id MUST be unique among all messages described in the API." - }, - "correlationId": { - "description": "Definition of the correlation ID used for message tracing or matching.", - "oneOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.6.0/Reference.json" - }, - { - "$ref": "http://asyncapi.com/definitions/2.6.0/correlationId.json" - } - ] - }, - "tags": { - "type": "array", - "description": "A list of tags for logical grouping and categorization of messages.", - "items": { - "$ref": "http://asyncapi.com/definitions/2.6.0/tag.json" - }, - "uniqueItems": true - }, - "summary": { - "type": "string", - "description": "A brief summary of the message." + "description": "Unique string used to identify the message. The id MUST be unique among all messages described in the API.", + "type": "string" }, "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." + "description": "Name of the message.", + "type": "string" }, - "externalDocs": { - "$ref": "http://asyncapi.com/definitions/2.6.0/externalDocs.json" + "schemaFormat": { + "description": "A string containing the name of the schema format/language used to define the message payload.", + "type": "string" }, - "deprecated": { - "type": "boolean", - "default": false + "summary": { + "description": "A brief summary of the message.", + "type": "string" }, - "examples": { + "tags": { + "description": "A list of tags for logical grouping and categorization of messages.", "type": "array", - "description": "List of examples.", + "uniqueItems": true, "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", - "description": "Schema definition of the application headers." - }, - "payload": { - "description": "Definition of the message payload. It can be of any type" - } - } + "$ref": "http://asyncapi.com/definitions/2.6.0/tag.json" } - }, - "bindings": { - "$ref": "http://asyncapi.com/definitions/2.6.0/bindingsObject.json" } }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.6.0/specificationExtension.json" + } + }, + "additionalProperties": false, "example": { "$ref": "http://asyncapi.com/examples/2.6.0/messageTrait.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/messageTrait.json" + } } diff --git a/definitions/2.6.0/messages.json b/definitions/2.6.0/messages.json index af94b2aa..374dd6ea 100644 --- a/definitions/2.6.0/messages.json +++ b/definitions/2.6.0/messages.json @@ -1,9 +1,9 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/messages.json", + "description": "JSON objects describing the messages being consumed and produced by the API.", "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.6.0/message.json" - }, - "description": "JSON objects describing the messages being consumed and produced by the API.", - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/messages.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.6.0/oauth2Flow.json b/definitions/2.6.0/oauth2Flow.json index 9aa287a0..637758bf 100644 --- a/definitions/2.6.0/oauth2Flow.json +++ b/definitions/2.6.0/oauth2Flow.json @@ -1,25 +1,27 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/oauth2Flow.json", "description": "Configuration details for a supported OAuth Flow", + "type": "object", "properties": { "authorizationUrl": { + "description": "The authorization URL to be used for this flow. This MUST be in the form of an absolute URL.", "type": "string", - "format": "uri", - "description": "The authorization URL to be used for this flow. This MUST be in the form of an absolute URL." - }, - "tokenUrl": { - "type": "string", - "format": "uri", - "description": "The token URL to be used for this flow. This MUST be in the form of an absolute URL." + "format": "uri" }, "refreshUrl": { + "description": "The URL to be used for obtaining refresh tokens. This MUST be in the form of an absolute URL.", "type": "string", - "format": "uri", - "description": "The URL to be used for obtaining refresh tokens. This MUST be in the form of an absolute URL." + "format": "uri" }, "scopes": { "description": "The available scopes for the OAuth2 security scheme. A map between the scope name and a short description for it.", "$ref": "http://asyncapi.com/definitions/2.6.0/oauth2Scopes.json" + }, + "tokenUrl": { + "description": "The token URL to be used for this flow. This MUST be in the form of an absolute URL.", + "type": "string", + "format": "uri" } }, "patternProperties": { @@ -30,7 +32,5 @@ "additionalProperties": false, "example": { "$ref": "http://asyncapi.com/examples/2.6.0/oauth2Flow.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/oauth2Flow.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.6.0/oauth2Flows.json b/definitions/2.6.0/oauth2Flows.json index d83ec2e2..ae6515bd 100644 --- a/definitions/2.6.0/oauth2Flows.json +++ b/definitions/2.6.0/oauth2Flows.json @@ -1,27 +1,29 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/oauth2Flows.json", "description": "Allows configuration of the supported OAuth Flows.", + "type": "object", "required": [ "type", "flows" ], "properties": { + "description": { + "description": "A short description for security scheme.", + "type": "string" + }, "type": { - "type": "string", "description": "A short description for security scheme.", + "type": "string", "enum": [ "oauth2" ] }, - "description": { - "type": "string", - "description": "A short description for security scheme." - }, "flows": { "type": "object", "properties": { - "implicit": { - "description": "Configuration for the OAuth Implicit flow.", + "authorizationCode": { + "description": "Configuration for the OAuth Authorization Code flow.", "allOf": [ { "$ref": "http://asyncapi.com/definitions/2.6.0/oauth2Flow.json" @@ -29,20 +31,14 @@ { "required": [ "authorizationUrl", + "tokenUrl", "scopes" ] - }, - { - "not": { - "required": [ - "tokenUrl" - ] - } } ] }, - "password": { - "description": "Configuration for the OAuth Resource Owner Protected Credentials flow.", + "clientCredentials": { + "description": "Configuration for the OAuth Client Credentials flow.", "allOf": [ { "$ref": "http://asyncapi.com/definitions/2.6.0/oauth2Flow.json" @@ -62,39 +58,45 @@ } ] }, - "clientCredentials": { - "description": "Configuration for the OAuth Client Credentials flow.", + "implicit": { + "description": "Configuration for the OAuth Implicit flow.", "allOf": [ { "$ref": "http://asyncapi.com/definitions/2.6.0/oauth2Flow.json" }, { "required": [ - "tokenUrl", + "authorizationUrl", "scopes" ] }, { "not": { "required": [ - "authorizationUrl" + "tokenUrl" ] } } ] }, - "authorizationCode": { - "description": "Configuration for the OAuth Authorization Code flow.", + "password": { + "description": "Configuration for the OAuth Resource Owner Protected Credentials flow.", "allOf": [ { "$ref": "http://asyncapi.com/definitions/2.6.0/oauth2Flow.json" }, { "required": [ - "authorizationUrl", "tokenUrl", "scopes" ] + }, + { + "not": { + "required": [ + "authorizationUrl" + ] + } } ] } @@ -106,7 +108,5 @@ "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/2.6.0/specificationExtension.json" } - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/oauth2Flows.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.6.0/oauth2Scopes.json b/definitions/2.6.0/oauth2Scopes.json index c9ee586c..a78edc21 100644 --- a/definitions/2.6.0/oauth2Scopes.json +++ b/definitions/2.6.0/oauth2Scopes.json @@ -1,8 +1,8 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/oauth2Scopes.json", "type": "object", "additionalProperties": { "type": "string" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/oauth2Scopes.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.6.0/openIdConnect.json b/definitions/2.6.0/openIdConnect.json index c2700c1e..f2f4b486 100644 --- a/definitions/2.6.0/openIdConnect.json +++ b/definitions/2.6.0/openIdConnect.json @@ -1,19 +1,21 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/openIdConnect.json", "type": "object", "required": [ "type", "openIdConnectUrl" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "openIdConnect" ] }, - "description": { - "type": "string" - }, "openIdConnectUrl": { "type": "string", "format": "uri" @@ -24,7 +26,5 @@ "$ref": "http://asyncapi.com/definitions/2.6.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/openIdConnect.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/2.6.0/openapiSchema_3_0.json b/definitions/2.6.0/openapiSchema_3_0.json index ec5dbe72..aebae5d6 100644 --- a/definitions/2.6.0/openapiSchema_3_0.json +++ b/definitions/2.6.0/openapiSchema_3_0.json @@ -2,154 +2,26 @@ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "http://asyncapi.com/definitions/2.6.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 + "description": { + "type": "string" }, - "minProperties": { - "type": "integer", - "minimum": 0, - "default": 0 + "deprecated": { + "default": false, + "type": "boolean" }, - "required": { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "uniqueItems": true + "readOnly": { + "default": false, + "type": "boolean" }, - "enum": { - "type": "array", - "items": true, - "minItems": 1, - "uniqueItems": false + "writeOnly": { + "default": false, + "type": "boolean" }, + "default": true, "type": { "type": "string", "enum": [ @@ -161,15 +33,11 @@ "string" ] }, - "not": { - "oneOf": [ - { - "$ref": "#" - }, - { - "$ref": "#/definitions/Reference" - } - ] + "enum": { + "type": "array", + "minItems": 1, + "uniqueItems": false, + "items": true }, "allOf": { "type": "array", @@ -184,7 +52,7 @@ ] } }, - "oneOf": { + "anyOf": { "type": "array", "items": { "oneOf": [ @@ -197,7 +65,7 @@ ] } }, - "anyOf": { + "oneOf": { "type": "array", "items": { "oneOf": [ @@ -210,6 +78,63 @@ ] } }, + "not": { + "oneOf": [ + { + "$ref": "#" + }, + { + "$ref": "#/definitions/Reference" + } + ] + }, + "exclusiveMaximum": { + "default": false, + "type": "boolean" + }, + "maximum": { + "type": "number" + }, + "exclusiveMinimum": { + "default": false, + "type": "boolean" + }, + "minimum": { + "type": "number" + }, + "multipleOf": { + "type": "number", + "exclusiveMinimum": 0 + }, + "pattern": { + "type": "string", + "format": "regex" + }, + "format": { + "type": "string" + }, + "maxLength": { + "type": "integer", + "minimum": 0 + }, + "minLength": { + "default": 0, + "type": "integer", + "minimum": 0 + }, + "maxItems": { + "type": "integer", + "minimum": 0 + }, + "minItems": { + "default": 0, + "type": "integer", + "minimum": 0 + }, + "uniqueItems": { + "default": false, + "type": "boolean" + }, "items": { "oneOf": [ { @@ -220,6 +145,23 @@ } ] }, + "required": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "maxProperties": { + "type": "integer", + "minimum": 0 + }, + "minProperties": { + "default": 0, + "type": "integer", + "minimum": 0 + }, "properties": { "type": "object", "additionalProperties": { @@ -234,6 +176,7 @@ } }, "additionalProperties": { + "default": true, "oneOf": [ { "$ref": "#" @@ -244,38 +187,18 @@ { "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 + "nullable": { + "default": false, + "type": "boolean" }, "xml": { "$ref": "#/definitions/XML" @@ -284,5 +207,82 @@ "patternProperties": { "^x-": true }, - "additionalProperties": false -} \ No newline at end of file + "additionalProperties": false, + "definitions": { + "Discriminator": { + "type": "object", + "required": [ + "propertyName" + ], + "properties": { + "mapping": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "propertyName": { + "type": "string" + } + } + }, + "ExternalDocumentation": { + "type": "object", + "required": [ + "url" + ], + "properties": { + "description": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri-reference" + } + }, + "patternProperties": { + "^x-": {} + }, + "additionalProperties": false + }, + "Reference": { + "type": "object", + "required": [ + "$ref" + ], + "patternProperties": { + "^\\$ref$": { + "type": "string", + "format": "uri-reference" + } + } + }, + "XML": { + "type": "object", + "properties": { + "attribute": { + "default": false, + "type": "boolean" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string", + "format": "uri" + }, + "prefix": { + "type": "string" + }, + "wrapped": { + "default": false, + "type": "boolean" + } + }, + "patternProperties": { + "^x-": {} + }, + "additionalProperties": false + } + } +} diff --git a/definitions/2.6.0/operation.json b/definitions/2.6.0/operation.json index ffcd3dce..3ba4090e 100644 --- a/definitions/2.6.0/operation.json +++ b/definitions/2.6.0/operation.json @@ -1,66 +1,66 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/operation.json", "description": "Describes a publish or a subscribe operation. This provides a place to document how and why messages are sent and received.", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.6.0/specificationExtension.json" - } - }, + "type": "object", "properties": { - "traits": { - "type": "array", - "description": "A list of traits to apply to the operation object.", - "items": { - "oneOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.6.0/Reference.json" - }, - { - "$ref": "http://asyncapi.com/definitions/2.6.0/operationTrait.json" - } - ] - } + "description": { + "description": "A verbose explanation of the operation.", + "type": "string" }, - "summary": { - "type": "string", - "description": "A short summary of what the operation is about." + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.6.0/bindingsObject.json" }, - "description": { - "type": "string", - "description": "A verbose explanation of the operation." + "externalDocs": { + "$ref": "http://asyncapi.com/definitions/2.6.0/externalDocs.json" + }, + "message": { + "$ref": "http://asyncapi.com/definitions/2.6.0/message.json" + }, + "operationId": { + "type": "string" }, "security": { - "type": "array", "description": "A declaration of which security mechanisms are associated with this operation.", + "type": "array", "items": { "$ref": "http://asyncapi.com/definitions/2.6.0/SecurityRequirement.json" } }, + "summary": { + "description": "A short summary of what the operation is about.", + "type": "string" + }, "tags": { - "type": "array", "description": "A list of tags for logical grouping and categorization of operations.", + "type": "array", + "uniqueItems": true, "items": { "$ref": "http://asyncapi.com/definitions/2.6.0/tag.json" - }, - "uniqueItems": true - }, - "externalDocs": { - "$ref": "http://asyncapi.com/definitions/2.6.0/externalDocs.json" - }, - "operationId": { - "type": "string" - }, - "bindings": { - "$ref": "http://asyncapi.com/definitions/2.6.0/bindingsObject.json" + } }, - "message": { - "$ref": "http://asyncapi.com/definitions/2.6.0/message.json" + "traits": { + "description": "A list of traits to apply to the operation object.", + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.6.0/Reference.json" + }, + { + "$ref": "http://asyncapi.com/definitions/2.6.0/operationTrait.json" + } + ] + } } }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.6.0/specificationExtension.json" + } + }, + "additionalProperties": false, "example": { "$ref": "http://asyncapi.com/examples/2.6.0/channels.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/operation.json" + } } diff --git a/definitions/2.6.0/operationTrait.json b/definitions/2.6.0/operationTrait.json index ca701a83..e719c08f 100644 --- a/definitions/2.6.0/operationTrait.json +++ b/definitions/2.6.0/operationTrait.json @@ -1,50 +1,50 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/operationTrait.json", "description": "Describes a trait that MAY be applied to an Operation Object.", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.6.0/specificationExtension.json" - } - }, + "type": "object", "properties": { - "summary": { - "type": "string", - "description": "A short summary of what the operation is about." - }, "description": { - "type": "string", - "description": "A verbose explanation of the operation." + "description": "A verbose explanation of the operation.", + "type": "string" }, - "tags": { - "type": "array", - "description": "A list of tags for logical grouping and categorization of operations.", - "items": { - "$ref": "http://asyncapi.com/definitions/2.6.0/tag.json" - }, - "uniqueItems": true + "bindings": { + "$ref": "http://asyncapi.com/definitions/2.6.0/bindingsObject.json" }, "externalDocs": { "$ref": "http://asyncapi.com/definitions/2.6.0/externalDocs.json" }, "operationId": { - "type": "string", - "description": "Unique string used to identify the operation. The id MUST be unique among all operations described in the API." + "description": "Unique string used to identify the operation. The id MUST be unique among all operations described in the API.", + "type": "string" }, "security": { - "type": "array", "description": "A declaration of which security mechanisms are associated with this operation. ", + "type": "array", "items": { "$ref": "http://asyncapi.com/definitions/2.6.0/SecurityRequirement.json" } }, - "bindings": { - "$ref": "http://asyncapi.com/definitions/2.6.0/bindingsObject.json" + "summary": { + "description": "A short summary of what the operation is about.", + "type": "string" + }, + "tags": { + "description": "A list of tags for logical grouping and categorization of operations.", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "http://asyncapi.com/definitions/2.6.0/tag.json" + } } }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.6.0/specificationExtension.json" + } + }, + "additionalProperties": false, "example": { "$ref": "http://asyncapi.com/examples/2.6.0/operationTrait.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/operationTrait.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.6.0/parameter.json b/definitions/2.6.0/parameter.json index 529abce9..be6e84aa 100644 --- a/definitions/2.6.0/parameter.json +++ b/definitions/2.6.0/parameter.json @@ -1,28 +1,28 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/parameter.json", "description": "Describes a parameter included in a channel name.", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.6.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.6.0/schema.json" + "description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed.", + "type": "string" }, "location": { - "type": "string", "description": "A runtime expression that specifies the location of the parameter value", + "type": "string", "pattern": "^\\$message\\.(header|payload)#(\\/(([^\\/~])|(~[01]))*)*" + }, + "schema": { + "$ref": "http://asyncapi.com/definitions/2.6.0/schema.json" + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.6.0/specificationExtension.json" } }, + "additionalProperties": false, "example": { "$ref": "http://asyncapi.com/examples/2.6.0/parameter.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/parameter.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.6.0/parameters.json b/definitions/2.6.0/parameters.json index 20bcf79e..d0f2030a 100644 --- a/definitions/2.6.0/parameters.json +++ b/definitions/2.6.0/parameters.json @@ -1,6 +1,8 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/parameters.json", "description": "JSON objects describing reusable channel parameters.", + "type": "object", "additionalProperties": { "oneOf": [ { @@ -13,7 +15,5 @@ }, "example": { "$ref": "http://asyncapi.com/examples/2.6.0/parameters.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/parameters.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.6.0/schema.json b/definitions/2.6.0/schema.json index dffef6b9..7428088e 100644 --- a/definitions/2.6.0/schema.json +++ b/definitions/2.6.0/schema.json @@ -1,41 +1,17 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/schema.json", "description": "The Schema Object allows the definition of input and output data types. These types can be objects, but also primitives and arrays.", "allOf": [ { "$ref": "http://json-schema.org/draft-07/schema#" }, { - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.6.0/specificationExtension.json" - } - }, "properties": { - "additionalProperties": { - "anyOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.6.0/schema.json" - }, - { - "type": "boolean" - } - ], - "default": {} - }, - "items": { - "anyOf": [ - { - "$ref": "http://asyncapi.com/definitions/2.6.0/schema.json" - }, - { - "type": "array", - "minItems": 1, - "items": { - "$ref": "http://asyncapi.com/definitions/2.6.0/schema.json" - } - } - ], - "default": {} + "deprecated": { + "description": "Specifies that a schema is deprecated and SHOULD be transitioned out of usage", + "default": false, + "type": "boolean" }, "allOf": { "type": "array", @@ -44,14 +20,14 @@ "$ref": "http://asyncapi.com/definitions/2.6.0/schema.json" } }, - "oneOf": { + "anyOf": { "type": "array", "minItems": 1, "items": { "$ref": "http://asyncapi.com/definitions/2.6.0/schema.json" } }, - "anyOf": { + "oneOf": { "type": "array", "minItems": 1, "items": { @@ -61,45 +37,69 @@ "not": { "$ref": "http://asyncapi.com/definitions/2.6.0/schema.json" }, + "contains": { + "$ref": "http://asyncapi.com/definitions/2.6.0/schema.json" + }, + "items": { + "default": {}, + "anyOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.6.0/schema.json" + }, + { + "type": "array", + "minItems": 1, + "items": { + "$ref": "http://asyncapi.com/definitions/2.6.0/schema.json" + } + } + ] + }, + "propertyNames": { + "$ref": "http://asyncapi.com/definitions/2.6.0/schema.json" + }, "properties": { + "default": {}, "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.6.0/schema.json" - }, - "default": {} + } }, "patternProperties": { + "default": {}, "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.6.0/schema.json" - }, - "default": {} - }, - "propertyNames": { - "$ref": "http://asyncapi.com/definitions/2.6.0/schema.json" + } }, - "contains": { - "$ref": "http://asyncapi.com/definitions/2.6.0/schema.json" + "additionalProperties": { + "default": {}, + "anyOf": [ + { + "$ref": "http://asyncapi.com/definitions/2.6.0/schema.json" + }, + { + "type": "boolean" + } + ] }, "discriminator": { - "type": "string", - "description": "Adds support for polymorphism. The discriminator is the schema property name that is used to differentiate between other schema that inherit this schema. " + "description": "Adds support for polymorphism. The discriminator is the schema property name that is used to differentiate between other schema that inherit this schema. ", + "type": "string" }, "externalDocs": { "description": "Additional external documentation for this schema.", "$ref": "http://asyncapi.com/definitions/2.6.0/externalDocs.json" - }, - "deprecated": { - "type": "boolean", - "default": false, - "description": "Specifies that a schema is deprecated and SHOULD be transitioned out of usage" + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.6.0/specificationExtension.json" } } } ], "example": { "$ref": "http://asyncapi.com/examples/2.6.0/schema.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/schema.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.6.0/schemas.json b/definitions/2.6.0/schemas.json index 6b54aa1c..10487648 100644 --- a/definitions/2.6.0/schemas.json +++ b/definitions/2.6.0/schemas.json @@ -1,9 +1,9 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/schemas.json", + "description": "JSON objects describing schemas the API uses.", "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/2.6.0/schema.json" - }, - "description": "JSON objects describing schemas the API uses.", - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/schemas.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.6.0/server.json b/definitions/2.6.0/server.json index 8741900c..d4720faf 100644 --- a/definitions/2.6.0/server.json +++ b/definitions/2.6.0/server.json @@ -1,60 +1,60 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/server.json", "description": "An object representing a message broker, a server or any other kind of computer program capable of sending and/or receiving data", + "type": "object", "required": [ "url", "protocol" ], - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/2.6.0/specificationExtension.json" - } - }, "properties": { - "url": { - "type": "string", - "description": "A URL to the target host. This URL supports Server Variables and MAY be relative, to indicate that the host location is relative to the location where the AsyncAPI document is being served." - }, "description": { - "type": "string", - "description": "An optional string describing the host designated by the URL. CommonMark syntax MAY be used for rich text representation." + "description": "An optional string describing the host designated by the URL. CommonMark syntax MAY be used for rich text representation.", + "type": "string" + }, + "bindings": { + "description": "A map where the keys describe the name of the protocol and the values describe protocol-specific definitions for the server.", + "$ref": "http://asyncapi.com/definitions/2.6.0/bindingsObject.json" }, "protocol": { - "type": "string", - "description": "The protocol this URL supports for connection. Supported protocol include, but are not limited to: amqp, amqps, http, https, ibmmq, jms, kafka, kafka-secure, anypointmq, mqtt, secure-mqtt, solace, stomp, stomps, ws, wss, mercure, googlepubsub." + "description": "The protocol this URL supports for connection. Supported protocol include, but are not limited to: amqp, amqps, http, https, ibmmq, jms, kafka, kafka-secure, anypointmq, mqtt, secure-mqtt, solace, stomp, stomps, ws, wss, mercure, googlepubsub.", + "type": "string" }, "protocolVersion": { - "type": "string", - "description": "The version of the protocol used for connection. For instance: AMQP 0.9.1, HTTP 2.0, Kafka 1.0.0, etc." - }, - "variables": { - "description": "A map between a variable name and its value. The value is used for substitution in the server's URL template.", - "$ref": "http://asyncapi.com/definitions/2.6.0/serverVariables.json" + "description": "The version of the protocol used for connection. For instance: AMQP 0.9.1, HTTP 2.0, Kafka 1.0.0, etc.", + "type": "string" }, "security": { - "type": "array", "description": "A declaration of which security mechanisms can be used with this server. The list of values includes alternative security requirement objects that can be used. ", + "type": "array", "items": { "$ref": "http://asyncapi.com/definitions/2.6.0/SecurityRequirement.json" } }, - "bindings": { - "description": "A map where the keys describe the name of the protocol and the values describe protocol-specific definitions for the server.", - "$ref": "http://asyncapi.com/definitions/2.6.0/bindingsObject.json" - }, "tags": { - "type": "array", "description": "A list of tags for logical grouping and categorization of servers.", + "type": "array", + "uniqueItems": true, "items": { "$ref": "http://asyncapi.com/definitions/2.6.0/tag.json" - }, - "uniqueItems": true + } + }, + "url": { + "description": "A URL to the target host. This URL supports Server Variables and MAY be relative, to indicate that the host location is relative to the location where the AsyncAPI document is being served.", + "type": "string" + }, + "variables": { + "description": "A map between a variable name and its value. The value is used for substitution in the server's URL template.", + "$ref": "http://asyncapi.com/definitions/2.6.0/serverVariables.json" + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.6.0/specificationExtension.json" } }, + "additionalProperties": false, "example": { "$ref": "http://asyncapi.com/examples/2.6.0/server.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/server.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.6.0/serverVariable.json b/definitions/2.6.0/serverVariable.json index 831e80cd..1a5f5f36 100644 --- a/definitions/2.6.0/serverVariable.json +++ b/definitions/2.6.0/serverVariable.json @@ -1,37 +1,37 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/serverVariable.json", "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.6.0/specificationExtension.json" - } - }, + "type": "object", "properties": { - "enum": { + "description": { + "description": "An optional description for the server variable. ", + "type": "string" + }, + "examples": { + "description": "An array of examples of the server variable.", "type": "array", - "description": "An enumeration of string values to be used if the substitution options are from a limited set.", "items": { "type": "string" - }, - "uniqueItems": true + } }, "default": { - "type": "string", - "description": "The default value to use for substitution, and to send, if an alternate value is not supplied." - }, - "description": { - "type": "string", - "description": "An optional description for the server variable. " + "description": "The default value to use for substitution, and to send, if an alternate value is not supplied.", + "type": "string" }, - "examples": { + "enum": { + "description": "An enumeration of string values to be used if the substitution options are from a limited set.", "type": "array", - "description": "An array of examples of the server variable.", + "uniqueItems": true, "items": { "type": "string" } } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/serverVariable.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/2.6.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/2.6.0/serverVariables.json b/definitions/2.6.0/serverVariables.json index bfc838c5..4a57f14e 100644 --- a/definitions/2.6.0/serverVariables.json +++ b/definitions/2.6.0/serverVariables.json @@ -1,6 +1,8 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/serverVariables.json", "description": "A map between a variable name and its value. The value is used for substitution in the server's URL template.", + "type": "object", "additionalProperties": { "oneOf": [ { @@ -10,7 +12,5 @@ "$ref": "http://asyncapi.com/definitions/2.6.0/serverVariable.json" } ] - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/serverVariables.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.6.0/servers.json b/definitions/2.6.0/servers.json index a07f6a61..5bb01ad7 100644 --- a/definitions/2.6.0/servers.json +++ b/definitions/2.6.0/servers.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/servers.json", "description": "The Servers Object is a map of Server Objects.", "type": "object", "additionalProperties": { @@ -13,7 +15,5 @@ }, "example": { "$ref": "http://asyncapi.com/examples/2.6.0/servers.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/servers.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.6.0/specificationExtension.json b/definitions/2.6.0/specificationExtension.json index 02846ff4..ff42f91e 100644 --- a/definitions/2.6.0/specificationExtension.json +++ b/definitions/2.6.0/specificationExtension.json @@ -1,7 +1,7 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/specificationExtension.json", "description": "Any property starting with x- is valid.", - "additionalProperties": true, "additionalItems": true, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/specificationExtension.json" -} \ No newline at end of file + "additionalProperties": true +} diff --git a/definitions/2.6.0/symmetricEncryption.json b/definitions/2.6.0/symmetricEncryption.json index b643421f..6d4b09e0 100644 --- a/definitions/2.6.0/symmetricEncryption.json +++ b/definitions/2.6.0/symmetricEncryption.json @@ -1,19 +1,21 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/symmetricEncryption.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "description": "A short description for security scheme.", + "type": "string" + }, "type": { - "type": "string", "description": "The type of the security scheme.", + "type": "string", "enum": [ "symmetricEncryption" ] - }, - "description": { - "type": "string", - "description": "A short description for security scheme." } }, "patternProperties": { @@ -21,10 +23,8 @@ "$ref": "http://asyncapi.com/definitions/2.6.0/specificationExtension.json" } }, + "additionalProperties": false, "example": { "$ref": "http://asyncapi.com/examples/2.6.0/symmetricEncryption.json" - }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/symmetricEncryption.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.6.0/tag.json b/definitions/2.6.0/tag.json index a4c9fe1e..c0abd61f 100644 --- a/definitions/2.6.0/tag.json +++ b/definitions/2.6.0/tag.json @@ -1,22 +1,23 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/tag.json", "description": "Allows adding meta data to a single tag.", - "additionalProperties": false, + "type": "object", "required": [ "name" ], "properties": { - "name": { - "type": "string", - "description": "The name of the tag." - }, "description": { - "type": "string", - "description": "A short description for the tag." + "description": "A short description for the tag.", + "type": "string" }, "externalDocs": { "description": "Additional external documentation for this tag.", "$ref": "http://asyncapi.com/definitions/2.6.0/externalDocs.json" + }, + "name": { + "description": "The name of the tag.", + "type": "string" } }, "patternProperties": { @@ -24,9 +25,8 @@ "$ref": "http://asyncapi.com/definitions/2.6.0/specificationExtension.json" } }, + "additionalProperties": false, "example": { "$ref": "http://asyncapi.com/examples/2.6.0/tag.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/tag.json" -} \ No newline at end of file + } +} diff --git a/definitions/2.6.0/userPassword.json b/definitions/2.6.0/userPassword.json index 3c9a5f90..2b20d59e 100644 --- a/definitions/2.6.0/userPassword.json +++ b/definitions/2.6.0/userPassword.json @@ -1,19 +1,21 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/2.6.0/userPassword.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "description": "A short description for security scheme.", + "type": "string" + }, "type": { - "type": "string", "description": "The type of the security scheme. ", + "type": "string", "enum": [ "userPassword" ] - }, - "description": { - "type": "string", - "description": "A short description for security scheme." } }, "patternProperties": { @@ -21,10 +23,8 @@ "$ref": "http://asyncapi.com/definitions/2.6.0/specificationExtension.json" } }, + "additionalProperties": false, "example": { "$ref": "http://asyncapi.com/examples/2.6.0/userPassword.json" - }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/2.6.0/userPassword.json" -} \ No newline at end of file + } +} diff --git a/definitions/3.0.0/APIKeyHTTPSecurityScheme.json b/definitions/3.0.0/APIKeyHTTPSecurityScheme.json index 33dee593..4c90c5d2 100644 --- a/definitions/3.0.0/APIKeyHTTPSecurityScheme.json +++ b/definitions/3.0.0/APIKeyHTTPSecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/APIKeyHTTPSecurityScheme.json", "type": "object", "required": [ "type", @@ -6,29 +8,29 @@ "in" ], "properties": { + "description": { + "description": "A short description for security scheme. CommonMark syntax MAY be used for rich text representation.", + "type": "string" + }, "type": { - "type": "string", "description": "The type of the security scheme.", + "type": "string", "enum": [ "httpApiKey" ] }, - "name": { - "type": "string", - "description": "The name of the header, query or cookie parameter to be used." - }, "in": { - "type": "string", "description": "The location of the API key", + "type": "string", "enum": [ "header", "query", "cookie" ] }, - "description": { - "type": "string", - "description": "A short description for security scheme. CommonMark syntax MAY be used for rich text representation." + "name": { + "description": "The name of the header, query or cookie parameter to be used.", + "type": "string" } }, "patternProperties": { @@ -36,10 +38,8 @@ "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } }, + "additionalProperties": false, "example": { "$ref": "http://asyncapi.com/examples/3.0.0/APIKeyHTTPSecurityScheme.json" - }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/APIKeyHTTPSecurityScheme.json" -} \ No newline at end of file + } +} diff --git a/definitions/3.0.0/BearerHTTPSecurityScheme.json b/definitions/3.0.0/BearerHTTPSecurityScheme.json index 3f71902b..631eef28 100644 --- a/definitions/3.0.0/BearerHTTPSecurityScheme.json +++ b/definitions/3.0.0/BearerHTTPSecurityScheme.json @@ -1,31 +1,33 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/BearerHTTPSecurityScheme.json", "type": "object", "required": [ "type", "scheme" ], "properties": { - "scheme": { + "description": { + "description": "A short description for security scheme. CommonMark syntax MAY be used for rich text representation.", + "type": "string" + }, + "type": { + "description": "The type of the security scheme.", "type": "string", - "description": "The name of the HTTP Authorization scheme to be used in the Authorization header as defined in RFC7235.", "enum": [ - "bearer" + "http" ] }, "bearerFormat": { - "type": "string", - "description": "A hint to the client to identify how the bearer token is formatted. Bearer tokens are usually generated by an authorization server, so this information is primarily for documentation purposes." + "description": "A hint to the client to identify how the bearer token is formatted. Bearer tokens are usually generated by an authorization server, so this information is primarily for documentation purposes.", + "type": "string" }, - "type": { + "scheme": { + "description": "The name of the HTTP Authorization scheme to be used in the Authorization header as defined in RFC7235.", "type": "string", - "description": "The type of the security scheme.", "enum": [ - "http" + "bearer" ] - }, - "description": { - "type": "string", - "description": "A short description for security scheme. CommonMark syntax MAY be used for rich text representation." } }, "patternProperties": { @@ -33,7 +35,5 @@ "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/BearerHTTPSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/3.0.0/HTTPSecurityScheme.json b/definitions/3.0.0/HTTPSecurityScheme.json index c75d7b50..37e1e6e1 100644 --- a/definitions/3.0.0/HTTPSecurityScheme.json +++ b/definitions/3.0.0/HTTPSecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/HTTPSecurityScheme.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/3.0.0/NonBearerHTTPSecurityScheme.json" @@ -9,7 +11,5 @@ { "$ref": "http://asyncapi.com/definitions/3.0.0/APIKeyHTTPSecurityScheme.json" } - ], - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/HTTPSecurityScheme.json" -} \ No newline at end of file + ] +} diff --git a/definitions/3.0.0/NonBearerHTTPSecurityScheme.json b/definitions/3.0.0/NonBearerHTTPSecurityScheme.json index 3f1a8d76..c9049329 100644 --- a/definitions/3.0.0/NonBearerHTTPSecurityScheme.json +++ b/definitions/3.0.0/NonBearerHTTPSecurityScheme.json @@ -1,36 +1,38 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/NonBearerHTTPSecurityScheme.json", + "type": "object", "not": { "type": "object", "properties": { "scheme": { - "type": "string", "description": "A short description for security scheme.", + "type": "string", "enum": [ "bearer" ] } } }, - "type": "object", "required": [ "scheme", "type" ], "properties": { - "scheme": { - "type": "string", - "description": "The name of the HTTP Authorization scheme to be used in the Authorization header as defined in RFC7235." - }, "description": { - "type": "string", - "description": "A short description for security scheme." + "description": "A short description for security scheme.", + "type": "string" }, "type": { - "type": "string", "description": "The type of the security scheme.", + "type": "string", "enum": [ "http" ] + }, + "scheme": { + "description": "The name of the HTTP Authorization scheme to be used in the Authorization header as defined in RFC7235.", + "type": "string" } }, "patternProperties": { @@ -38,7 +40,5 @@ "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/NonBearerHTTPSecurityScheme.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/3.0.0/Reference.json b/definitions/3.0.0/Reference.json index 78f41b69..99de7ffb 100644 --- a/definitions/3.0.0/Reference.json +++ b/definitions/3.0.0/Reference.json @@ -1,6 +1,8 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/Reference.json", "description": "A simple object to allow referencing other components in the specification, internally and externally.", + "type": "object", "required": [ "$ref" ], @@ -12,7 +14,5 @@ }, "example": { "$ref": "http://asyncapi.com/examples/3.0.0/ReferenceObject.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/Reference.json" -} \ No newline at end of file + } +} diff --git a/definitions/3.0.0/ReferenceObject.json b/definitions/3.0.0/ReferenceObject.json index c58008a4..6dab2af1 100644 --- a/definitions/3.0.0/ReferenceObject.json +++ b/definitions/3.0.0/ReferenceObject.json @@ -1,6 +1,6 @@ { - "type": "string", - "format": "uri-reference", "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/ReferenceObject.json" -} \ No newline at end of file + "$id": "http://asyncapi.com/definitions/3.0.0/ReferenceObject.json", + "type": "string", + "format": "uri-reference" +} diff --git a/definitions/3.0.0/SaslGssapiSecurityScheme.json b/definitions/3.0.0/SaslGssapiSecurityScheme.json index eb65dcc8..e17231b6 100644 --- a/definitions/3.0.0/SaslGssapiSecurityScheme.json +++ b/definitions/3.0.0/SaslGssapiSecurityScheme.json @@ -1,19 +1,21 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/SaslGssapiSecurityScheme.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "description": "A short description for security scheme.", + "type": "string" + }, "type": { - "type": "string", "description": "The type of the security scheme.", + "type": "string", "enum": [ "gssapi" ] - }, - "description": { - "type": "string", - "description": "A short description for security scheme." } }, "patternProperties": { @@ -21,10 +23,8 @@ "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } }, - "example": { - "$ref": "http://asyncapi.com/examples/3.0.0/Sasl.json" - }, "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/SaslGssapiSecurityScheme.json" -} \ No newline at end of file + "example": { + "$ref": "http://asyncapi.com/examples/3.0.0/Sasl.json" + } +} diff --git a/definitions/3.0.0/SaslPlainSecurityScheme.json b/definitions/3.0.0/SaslPlainSecurityScheme.json index e461874f..fd24e27a 100644 --- a/definitions/3.0.0/SaslPlainSecurityScheme.json +++ b/definitions/3.0.0/SaslPlainSecurityScheme.json @@ -1,19 +1,21 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/SaslPlainSecurityScheme.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "description": "A short description for security scheme.", + "type": "string" + }, "type": { - "type": "string", "description": "The type of the security scheme. Valid values", + "type": "string", "enum": [ "plain" ] - }, - "description": { - "type": "string", - "description": "A short description for security scheme." } }, "patternProperties": { @@ -21,10 +23,8 @@ "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } }, + "additionalProperties": false, "example": { "$ref": "http://asyncapi.com/examples/3.0.0/Sasl.json" - }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/SaslPlainSecurityScheme.json" + } } diff --git a/definitions/3.0.0/SaslScramSecurityScheme.json b/definitions/3.0.0/SaslScramSecurityScheme.json index 6d1f850b..0935be84 100644 --- a/definitions/3.0.0/SaslScramSecurityScheme.json +++ b/definitions/3.0.0/SaslScramSecurityScheme.json @@ -1,20 +1,22 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/SaslScramSecurityScheme.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "description": "A short description for security scheme.", + "type": "string" + }, "type": { - "type": "string", "description": "The type of the security scheme.", + "type": "string", "enum": [ "scramSha256", "scramSha512" ] - }, - "description": { - "type": "string", - "description": "A short description for security scheme." } }, "patternProperties": { @@ -22,10 +24,8 @@ "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } }, + "additionalProperties": false, "example": { "$ref": "http://asyncapi.com/examples/3.0.0/Sasl.json" - }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/SaslScramSecurityScheme.json" + } } diff --git a/definitions/3.0.0/SaslSecurityScheme.json b/definitions/3.0.0/SaslSecurityScheme.json index 4688e223..daba1b7b 100644 --- a/definitions/3.0.0/SaslSecurityScheme.json +++ b/definitions/3.0.0/SaslSecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/SaslSecurityScheme.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/3.0.0/SaslPlainSecurityScheme.json" @@ -9,7 +11,5 @@ { "$ref": "http://asyncapi.com/definitions/3.0.0/SaslGssapiSecurityScheme.json" } - ], - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/SaslSecurityScheme.json" -} \ No newline at end of file + ] +} diff --git a/definitions/3.0.0/SecurityScheme.json b/definitions/3.0.0/SecurityScheme.json index 83573217..dbb58aa9 100644 --- a/definitions/3.0.0/SecurityScheme.json +++ b/definitions/3.0.0/SecurityScheme.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/SecurityScheme.json", "description": "Defines a security scheme that can be used by the operations.", "oneOf": [ { @@ -31,7 +33,5 @@ ], "example": { "$ref": "http://asyncapi.com/examples/3.0.0/SecurityScheme.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/SecurityScheme.json" -} \ No newline at end of file + } +} diff --git a/definitions/3.0.0/X509.json b/definitions/3.0.0/X509.json index 004db984..b67806b8 100644 --- a/definitions/3.0.0/X509.json +++ b/definitions/3.0.0/X509.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/X509.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "X509" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,10 +21,8 @@ "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } }, + "additionalProperties": false, "example": { "$ref": "http://asyncapi.com/examples/3.0.0/X509.json" - }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/X509.json" + } } diff --git a/definitions/3.0.0/anySchema.json b/definitions/3.0.0/anySchema.json index 4a0bf239..a3964b6b 100644 --- a/definitions/3.0.0/anySchema.json +++ b/definitions/3.0.0/anySchema.json @@ -1,4 +1,7 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/anySchema.json", + "description": "An object representing either a schema or a multiFormatSchema based on the existence of the 'schema' property. If the property 'schema' is present, use the multi-format schema. Use the default AsyncAPI Schema otherwise.", "if": { "required": [ "schema" @@ -9,8 +12,5 @@ }, "else": { "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" - }, - "description": "An object representing either a schema or a multiFormatSchema based on the existence of the 'schema' property. If the property 'schema' is present, use the multi-format schema. Use the default AsyncAPI Schema otherwise.", - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/anySchema.json" + } } diff --git a/definitions/3.0.0/apiKey.json b/definitions/3.0.0/apiKey.json index daec7eaf..7e7ca2f2 100644 --- a/definitions/3.0.0/apiKey.json +++ b/definitions/3.0.0/apiKey.json @@ -1,28 +1,30 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/apiKey.json", "type": "object", "required": [ "type", "in" ], "properties": { + "description": { + "description": "A short description for security scheme. CommonMark syntax MAY be used for rich text representation.", + "type": "string" + }, "type": { - "type": "string", "description": "The type of the security scheme", + "type": "string", "enum": [ "apiKey" ] }, "in": { - "type": "string", "description": " The location of the API key.", + "type": "string", "enum": [ "user", "password" ] - }, - "description": { - "type": "string", - "description": "A short description for security scheme. CommonMark syntax MAY be used for rich text representation." } }, "patternProperties": { @@ -30,10 +32,8 @@ "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } }, + "additionalProperties": false, "example": { "$ref": "http://asyncapi.com/examples/3.0.0/apiKey.json" - }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/apiKey.json" + } } diff --git a/definitions/3.0.0/asymmetricEncryption.json b/definitions/3.0.0/asymmetricEncryption.json index b52c5dff..5dace2fc 100644 --- a/definitions/3.0.0/asymmetricEncryption.json +++ b/definitions/3.0.0/asymmetricEncryption.json @@ -1,19 +1,21 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/asymmetricEncryption.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "description": "A short description for security scheme.", + "type": "string" + }, "type": { - "type": "string", "description": "The type of the security scheme.", + "type": "string", "enum": [ "asymmetricEncryption" ] - }, - "description": { - "type": "string", - "description": "A short description for security scheme." } }, "patternProperties": { @@ -21,7 +23,5 @@ "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/asymmetricEncryption.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/3.0.0/asyncapi.json b/definitions/3.0.0/asyncapi.json index 0af21643..53824f37 100644 --- a/definitions/3.0.0/asyncapi.json +++ b/definitions/3.0.0/asyncapi.json @@ -1,47 +1,47 @@ { - "title": "AsyncAPI 3.0.0 schema.", "$schema": "http://json-schema.org/draft-07/schema#", "$id": "http://asyncapi.com/definitions/3.0.0/asyncapi.json", + "title": "AsyncAPI 3.0.0 schema.", "type": "object", "required": [ "asyncapi", "info" ], - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" - } - }, "properties": { - "asyncapi": { - "type": "string", - "const": "3.0.0", - "description": "The AsyncAPI specification version of this document." - }, "id": { - "type": "string", "description": "A unique id representing the application.", + "type": "string", "format": "uri" }, - "info": { - "$ref": "http://asyncapi.com/definitions/3.0.0/info.json" - }, - "servers": { - "$ref": "http://asyncapi.com/definitions/3.0.0/servers.json" - }, - "defaultContentType": { + "asyncapi": { + "description": "The AsyncAPI specification version of this document.", "type": "string", - "description": "Default content type to use when encoding/decoding a message's payload." + "const": "3.0.0" }, "channels": { "$ref": "http://asyncapi.com/definitions/3.0.0/channels.json" }, + "components": { + "$ref": "http://asyncapi.com/definitions/3.0.0/components.json" + }, + "defaultContentType": { + "description": "Default content type to use when encoding/decoding a message's payload.", + "type": "string" + }, + "info": { + "$ref": "http://asyncapi.com/definitions/3.0.0/info.json" + }, "operations": { "$ref": "http://asyncapi.com/definitions/3.0.0/operations.json" }, - "components": { - "$ref": "http://asyncapi.com/definitions/3.0.0/components.json" + "servers": { + "$ref": "http://asyncapi.com/definitions/3.0.0/servers.json" } - } -} \ No newline at end of file + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/3.0.0/channel.json b/definitions/3.0.0/channel.json index 35567b6d..9f9b206d 100644 --- a/definitions/3.0.0/channel.json +++ b/definitions/3.0.0/channel.json @@ -1,16 +1,43 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/channel.json", "description": "Describes a shared communication channel.", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" - } - }, + "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": { - "type": ["string", "null"], - "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." + "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": "http://asyncapi.com/definitions/3.0.0/Reference.json" + }, + { + "$ref": "http://asyncapi.com/definitions/3.0.0/channelBindingsObject.json" + } + ] + }, + "externalDocs": { + "oneOf": [ + { + "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" + }, + { + "$ref": "http://asyncapi.com/definitions/3.0.0/externalDocs.json" + } + ] }, "messages": { "$ref": "http://asyncapi.com/definitions/3.0.0/channelMessages.json" @@ -18,65 +45,41 @@ "parameters": { "$ref": "http://asyncapi.com/definitions/3.0.0/parameters.json" }, - "title": { - "type": "string", - "description": "A human-friendly title for the channel." - }, - "summary": { - "type": "string", - "description": "A brief summary of the channel." - }, - "description": { - "type": "string", - "description": "A longer description of the channel. CommonMark is allowed." - }, "servers": { - "type": "array", "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": "http://asyncapi.com/definitions/3.0.0/Reference.json" - }, - "uniqueItems": true + } + }, + "summary": { + "description": "A brief summary of the channel.", + "type": "string" }, "tags": { - "type": "array", "description": "A list of tags for logical grouping of channels.", + "type": "array", + "uniqueItems": true, "items": { "oneOf": [ - { - "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" - }, - { - "$ref": "http://asyncapi.com/definitions/3.0.0/tag.json" - } - ] - }, - "uniqueItems": true - }, - "externalDocs": { - "oneOf": [ - { - "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" - }, - { - "$ref": "http://asyncapi.com/definitions/3.0.0/externalDocs.json" - } - ] - }, - "bindings": { - "oneOf": [ - { - "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" - }, - { - "$ref": "http://asyncapi.com/definitions/3.0.0/channelBindingsObject.json" - } - ] + { + "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" + }, + { + "$ref": "http://asyncapi.com/definitions/3.0.0/tag.json" + } + ] + } } }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + } + }, + "additionalProperties": false, "example": { "$ref": "http://asyncapi.com/examples/3.0.0/channel.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/channel.json" + } } diff --git a/definitions/3.0.0/channelBindingsObject.json b/definitions/3.0.0/channelBindingsObject.json index 54466b49..14f5c90a 100644 --- a/definitions/3.0.0/channelBindingsObject.json +++ b/definitions/3.0.0/channelBindingsObject.json @@ -1,20 +1,10 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/channelBindingsObject.json", "description": "Map describing protocol-specific definitions for a channel.", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" - } - }, + "type": "object", "properties": { - "http": {}, - "ws": { - "properties": { - "bindingVersion": { - "enum": ["0.1.0"] - } - }, + "amqp": { "allOf": [ { "description": "If no bindingVersion specified, use the latest binding", @@ -26,30 +16,35 @@ } }, "then": { - "$ref": "http://asyncapi.com/bindings/websockets/0.1.0/channel.json" + "$ref": "http://asyncapi.com/bindings/amqp/0.3.0/channel.json" } }, { "if": { - "required": [ "bindingVersion" ], + "required": [ + "bindingVersion" + ], "properties": { "bindingVersion": { - "const": "0.1.0" + "const": "0.3.0" } } - }, + }, "then": { - "$ref": "http://asyncapi.com/bindings/websockets/0.1.0/channel.json" + "$ref": "http://asyncapi.com/bindings/amqp/0.3.0/channel.json" } } - ] - }, - "amqp": { + ], "properties": { "bindingVersion": { - "enum": ["0.3.0"] + "enum": [ + "0.3.0" + ] } - }, + } + }, + "amqp1": {}, + "anypointmq": { "allOf": [ { "description": "If no bindingVersion specified, use the latest binding", @@ -61,32 +56,34 @@ } }, "then": { - "$ref": "http://asyncapi.com/bindings/amqp/0.3.0/channel.json" + "$ref": "http://asyncapi.com/bindings/anypointmq/0.0.1/channel.json" } }, { "if": { - "required": [ "bindingVersion" ], + "required": [ + "bindingVersion" + ], "properties": { "bindingVersion": { - "const": "0.3.0" + "const": "0.0.1" } } - }, + }, "then": { - "$ref": "http://asyncapi.com/bindings/amqp/0.3.0/channel.json" + "$ref": "http://asyncapi.com/bindings/anypointmq/0.0.1/channel.json" } } - ] - }, - "amqp1": {}, - "mqtt": {}, - "kafka": { + ], "properties": { "bindingVersion": { - "enum": ["0.5.0", "0.4.0", "0.3.0"] + "enum": [ + "0.0.1" + ] } - }, + } + }, + "googlepubsub": { "allOf": [ { "description": "If no bindingVersion specified, use the latest binding", @@ -98,56 +95,74 @@ } }, "then": { - "$ref": "http://asyncapi.com/bindings/kafka/0.5.0/channel.json" + "$ref": "http://asyncapi.com/bindings/googlepubsub/0.2.0/channel.json" } }, { "if": { - "required": [ "bindingVersion" ], + "required": [ + "bindingVersion" + ], "properties": { "bindingVersion": { - "const": "0.5.0" + "const": "0.2.0" } } }, "then": { - "$ref": "http://asyncapi.com/bindings/kafka/0.5.0/channel.json" + "$ref": "http://asyncapi.com/bindings/googlepubsub/0.2.0/channel.json" } - }, + } + ], + "properties": { + "bindingVersion": { + "enum": [ + "0.2.0" + ] + } + } + }, + "http": {}, + "ibmmq": { + "allOf": [ { + "description": "If no bindingVersion specified, use the latest binding", "if": { - "required": [ "bindingVersion" ], - "properties": { - "bindingVersion": { - "const": "0.4.0" - } + "not": { + "required": [ + "bindingVersion" + ] } - }, + }, "then": { - "$ref": "http://asyncapi.com/bindings/kafka/0.4.0/channel.json" + "$ref": "http://asyncapi.com/bindings/ibmmq/0.1.0/channel.json" } }, { "if": { - "required": [ "bindingVersion" ], + "required": [ + "bindingVersion" + ], "properties": { "bindingVersion": { - "const": "0.3.0" + "const": "0.1.0" } } - }, + }, "then": { - "$ref": "http://asyncapi.com/bindings/kafka/0.3.0/channel.json" + "$ref": "http://asyncapi.com/bindings/ibmmq/0.1.0/channel.json" } } - ] - }, - "anypointmq": { + ], "properties": { "bindingVersion": { - "enum": ["0.0.1"] + "enum": [ + "0.1.0" + ] } - }, + } + }, + "jms": { "allOf": [ { "description": "If no bindingVersion specified, use the latest binding", @@ -159,31 +174,34 @@ } }, "then": { - "$ref": "http://asyncapi.com/bindings/anypointmq/0.0.1/channel.json" + "$ref": "http://asyncapi.com/bindings/jms/0.0.1/channel.json" } }, { "if": { - "required": [ "bindingVersion" ], + "required": [ + "bindingVersion" + ], "properties": { "bindingVersion": { "const": "0.0.1" } } - }, + }, "then": { - "$ref": "http://asyncapi.com/bindings/anypointmq/0.0.1/channel.json" + "$ref": "http://asyncapi.com/bindings/jms/0.0.1/channel.json" } } - ] - }, - "nats": {}, - "jms": { + ], "properties": { "bindingVersion": { - "enum": ["0.0.1"] + "enum": [ + "0.0.1" + ] } - }, + } + }, + "kafka": { "allOf": [ { "description": "If no bindingVersion specified, use the latest binding", @@ -195,65 +213,68 @@ } }, "then": { - "$ref": "http://asyncapi.com/bindings/jms/0.0.1/channel.json" + "$ref": "http://asyncapi.com/bindings/kafka/0.5.0/channel.json" } }, { "if": { - "required": [ "bindingVersion" ], + "required": [ + "bindingVersion" + ], "properties": { "bindingVersion": { - "const": "0.0.1" + "const": "0.5.0" } } - }, + }, "then": { - "$ref": "http://asyncapi.com/bindings/jms/0.0.1/channel.json" + "$ref": "http://asyncapi.com/bindings/kafka/0.5.0/channel.json" } - } - ] - }, - "sns": { - "properties": { - "bindingVersion": { - "enum": ["0.1.0"] - } - }, - "allOf": [ + }, { - "description": "If no bindingVersion specified, use the latest binding", "if": { - "not": { - "required": [ - "bindingVersion" - ] + "required": [ + "bindingVersion" + ], + "properties": { + "bindingVersion": { + "const": "0.4.0" + } } }, "then": { - "$ref": "http://asyncapi.com/bindings/sns/0.1.0/channel.json" + "$ref": "http://asyncapi.com/bindings/kafka/0.4.0/channel.json" } }, { "if": { - "required": [ "bindingVersion" ], + "required": [ + "bindingVersion" + ], "properties": { "bindingVersion": { - "const": "0.1.0" + "const": "0.3.0" } } - }, + }, "then": { - "$ref": "http://asyncapi.com/bindings/sns/0.1.0/channel.json" + "$ref": "http://asyncapi.com/bindings/kafka/0.3.0/channel.json" } } - ] - }, - "sqs": { + ], "properties": { "bindingVersion": { - "enum": ["0.2.0"] + "enum": [ + "0.5.0", + "0.4.0", + "0.3.0" + ] } - }, + } + }, + "mqtt": {}, + "nats": {}, + "pulsar": { "allOf": [ { "description": "If no bindingVersion specified, use the latest binding", @@ -265,32 +286,35 @@ } }, "then": { - "$ref": "http://asyncapi.com/bindings/sqs/0.2.0/channel.json" + "$ref": "http://asyncapi.com/bindings/pulsar/0.1.0/channel.json" } }, { "if": { - "required": [ "bindingVersion" ], + "required": [ + "bindingVersion" + ], "properties": { "bindingVersion": { - "const": "0.2.0" + "const": "0.1.0" } } - }, + }, "then": { - "$ref": "http://asyncapi.com/bindings/sqs/0.2.0/channel.json" + "$ref": "http://asyncapi.com/bindings/pulsar/0.1.0/channel.json" } } - ] - }, - "stomp": {}, - "redis": {}, - "ibmmq": { + ], "properties": { "bindingVersion": { - "enum": ["0.1.0"] + "enum": [ + "0.1.0" + ] } - }, + } + }, + "redis": {}, + "sns": { "allOf": [ { "description": "If no bindingVersion specified, use the latest binding", @@ -302,31 +326,35 @@ } }, "then": { - "$ref": "http://asyncapi.com/bindings/ibmmq/0.1.0/channel.json" + "$ref": "http://asyncapi.com/bindings/sns/0.1.0/channel.json" } }, { "if": { - "required": [ "bindingVersion" ], + "required": [ + "bindingVersion" + ], "properties": { "bindingVersion": { "const": "0.1.0" } } - }, + }, "then": { - "$ref": "http://asyncapi.com/bindings/ibmmq/0.1.0/channel.json" + "$ref": "http://asyncapi.com/bindings/sns/0.1.0/channel.json" } } - ] - }, - "solace": {}, - "googlepubsub": { + ], "properties": { "bindingVersion": { - "enum": ["0.2.0"] + "enum": [ + "0.1.0" + ] } - }, + } + }, + "solace": {}, + "sqs": { "allOf": [ { "description": "If no bindingVersion specified, use the latest binding", @@ -338,30 +366,35 @@ } }, "then": { - "$ref": "http://asyncapi.com/bindings/googlepubsub/0.2.0/channel.json" + "$ref": "http://asyncapi.com/bindings/sqs/0.2.0/channel.json" } }, { "if": { - "required": [ "bindingVersion" ], + "required": [ + "bindingVersion" + ], "properties": { "bindingVersion": { "const": "0.2.0" } } - }, + }, "then": { - "$ref": "http://asyncapi.com/bindings/googlepubsub/0.2.0/channel.json" + "$ref": "http://asyncapi.com/bindings/sqs/0.2.0/channel.json" } } - ] - }, - "pulsar": { + ], "properties": { "bindingVersion": { - "enum": ["0.1.0"] + "enum": [ + "0.2.0" + ] } - }, + } + }, + "stomp": {}, + "ws": { "allOf": [ { "description": "If no bindingVersion specified, use the latest binding", @@ -373,25 +406,38 @@ } }, "then": { - "$ref": "http://asyncapi.com/bindings/pulsar/0.1.0/channel.json" + "$ref": "http://asyncapi.com/bindings/websockets/0.1.0/channel.json" } }, { "if": { - "required": [ "bindingVersion" ], + "required": [ + "bindingVersion" + ], "properties": { "bindingVersion": { "const": "0.1.0" } } - }, + }, "then": { - "$ref": "http://asyncapi.com/bindings/pulsar/0.1.0/channel.json" + "$ref": "http://asyncapi.com/bindings/websockets/0.1.0/channel.json" } } - ] + ], + "properties": { + "bindingVersion": { + "enum": [ + "0.1.0" + ] + } + } } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/channelBindingsObject.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/3.0.0/channelMessages.json b/definitions/3.0.0/channelMessages.json index 212ab610..c8f891b4 100644 --- a/definitions/3.0.0/channelMessages.json +++ b/definitions/3.0.0/channelMessages.json @@ -1,4 +1,7 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/channelMessages.json", + "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": [ @@ -9,8 +12,5 @@ "$ref": "http://asyncapi.com/definitions/3.0.0/messageObject.json" } ] - }, - "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.**", - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/channelMessages.json" -} \ No newline at end of file + } +} diff --git a/definitions/3.0.0/channels.json b/definitions/3.0.0/channels.json index 4169cfc3..e6e4968a 100644 --- a/definitions/3.0.0/channels.json +++ b/definitions/3.0.0/channels.json @@ -1,19 +1,19 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/channels.json", "description": "An object containing all the Channel Object definitions the Application MUST use during runtime.", + "type": "object", "additionalProperties": { "oneOf": [ { "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" }, { - "$ref": "http://asyncapi.com/definitions/3.0.0/channel.json" + "$ref": "http://asyncapi.com/definitions/3.0.0/channel.json" } ] }, "example": { "$ref": "http://asyncapi.com/examples/3.0.0/channels.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/channels.json" + } } diff --git a/definitions/3.0.0/components.json b/definitions/3.0.0/components.json index 2243d978..244985f2 100644 --- a/definitions/3.0.0/components.json +++ b/definitions/3.0.0/components.json @@ -1,25 +1,12 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/components.json", "description": "An object to hold a set of reusable objects for different aspects of the AsyncAPI specification. All objects defined within the components object will have no effect on the API unless they are explicitly referenced from properties outside the components object.", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" - } - }, + "type": "object", "properties": { - "schemas": { - "type": "object", - "description": "An object to hold reusable Schema Object. If this is a Schema Object, then the schemaFormat will be assumed to be 'application/vnd.aai.asyncapi+json;version=asyncapi' where the version is equal to the AsyncAPI Version String.", - "patternProperties": { - "^[\\w\\d\\.\\-_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/anySchema.json" - } - } - }, - "servers": { + "channelBindings": { + "description": "An object to hold reusable Channel Bindings Objects.", "type": "object", - "description": "An object to hold reusable Server Objects.", "patternProperties": { "^[\\w\\d\\.\\-_]+$": { "oneOf": [ @@ -27,31 +14,31 @@ "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" }, { - "$ref": "http://asyncapi.com/definitions/3.0.0/server.json" + "$ref": "http://asyncapi.com/definitions/3.0.0/channelBindingsObject.json" } ] } } }, "channels": { - "type": "object", "description": "An object to hold reusable Channel Objects.", + "type": "object", "patternProperties": { "^[\\w\\d\\.\\-_]+$": { "oneOf": [ - { - "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" + { + "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" }, - { - "$ref": "http://asyncapi.com/definitions/3.0.0/channel.json" + { + "$ref": "http://asyncapi.com/definitions/3.0.0/channel.json" } ] } } }, - "serverVariables": { + "correlationIds": { + "description": "An object to hold reusable Correlation ID Objects.", "type": "object", - "description": "An object to hold reusable Server Variable Objects.", "patternProperties": { "^[\\w\\d\\.\\-_]+$": { "oneOf": [ @@ -59,13 +46,14 @@ "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" }, { - "$ref": "http://asyncapi.com/definitions/3.0.0/serverVariable.json" + "$ref": "http://asyncapi.com/definitions/3.0.0/correlationId.json" } ] } } }, - "operations": { + "externalDocs": { + "description": "An object to hold reusable External Documentation Objects.", "type": "object", "patternProperties": { "^[\\w\\d\\.\\-_]+$": { @@ -74,15 +62,15 @@ "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" }, { - "$ref": "http://asyncapi.com/definitions/3.0.0/operation.json" + "$ref": "http://asyncapi.com/definitions/3.0.0/externalDocs.json" } ] } } }, - "messages": { + "messageBindings": { + "description": "An object to hold reusable Message Bindings Objects.", "type": "object", - "description": "An object to hold reusable Message Objects.", "patternProperties": { "^[\\w\\d\\.\\-_]+$": { "oneOf": [ @@ -90,15 +78,15 @@ "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" }, { - "$ref": "http://asyncapi.com/definitions/3.0.0/messageObject.json" + "$ref": "http://asyncapi.com/definitions/3.0.0/messageBindingsObject.json" } ] } } }, - "securitySchemes": { + "messageTraits": { + "description": "An object to hold reusable Message Trait Objects.", "type": "object", - "description": "An object to hold reusable Security Scheme Objects.", "patternProperties": { "^[\\w\\d\\.\\-_]+$": { "oneOf": [ @@ -106,15 +94,15 @@ "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" }, { - "$ref": "http://asyncapi.com/definitions/3.0.0/SecurityScheme.json" + "$ref": "http://asyncapi.com/definitions/3.0.0/messageTrait.json" } ] } } }, - "parameters": { + "messages": { + "description": "An object to hold reusable Message Objects.", "type": "object", - "description": "An object to hold reusable Parameter Objects.", "patternProperties": { "^[\\w\\d\\.\\-_]+$": { "oneOf": [ @@ -122,15 +110,15 @@ "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" }, { - "$ref": "http://asyncapi.com/definitions/3.0.0/parameter.json" + "$ref": "http://asyncapi.com/definitions/3.0.0/messageObject.json" } ] } } }, - "correlationIds": { + "operationBindings": { + "description": "An object to hold reusable Operation Bindings Objects.", "type": "object", - "description": "An object to hold reusable Correlation ID Objects.", "patternProperties": { "^[\\w\\d\\.\\-_]+$": { "oneOf": [ @@ -138,15 +126,15 @@ "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" }, { - "$ref": "http://asyncapi.com/definitions/3.0.0/correlationId.json" + "$ref": "http://asyncapi.com/definitions/3.0.0/operationBindingsObject.json" } ] } } }, "operationTraits": { - "type": "object", "description": "An object to hold reusable Operation Trait Objects.", + "type": "object", "patternProperties": { "^[\\w\\d\\.\\-_]+$": { "oneOf": [ @@ -160,9 +148,8 @@ } } }, - "messageTraits": { + "operations": { "type": "object", - "description": "An object to hold reusable Message Trait Objects.", "patternProperties": { "^[\\w\\d\\.\\-_]+$": { "oneOf": [ @@ -170,15 +157,15 @@ "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" }, { - "$ref": "http://asyncapi.com/definitions/3.0.0/messageTrait.json" + "$ref": "http://asyncapi.com/definitions/3.0.0/operation.json" } ] } } }, - "replies": { + "parameters": { + "description": "An object to hold reusable Parameter Objects.", "type": "object", - "description": "An object to hold reusable Operation Reply Objects.", "patternProperties": { "^[\\w\\d\\.\\-_]+$": { "oneOf": [ @@ -186,15 +173,15 @@ "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" }, { - "$ref": "http://asyncapi.com/definitions/3.0.0/operationReply.json" + "$ref": "http://asyncapi.com/definitions/3.0.0/parameter.json" } ] } } }, - "replyAddresses": { + "replies": { + "description": "An object to hold reusable Operation Reply Objects.", "type": "object", - "description": "An object to hold reusable Operation Reply Address Objects.", "patternProperties": { "^[\\w\\d\\.\\-_]+$": { "oneOf": [ @@ -202,15 +189,15 @@ "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" }, { - "$ref": "http://asyncapi.com/definitions/3.0.0/operationReplyAddress.json" + "$ref": "http://asyncapi.com/definitions/3.0.0/operationReply.json" } ] } } }, - "serverBindings": { + "replyAddresses": { + "description": "An object to hold reusable Operation Reply Address Objects.", "type": "object", - "description": "An object to hold reusable Server Bindings Objects.", "patternProperties": { "^[\\w\\d\\.\\-_]+$": { "oneOf": [ @@ -218,15 +205,24 @@ "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" }, { - "$ref": "http://asyncapi.com/definitions/3.0.0/serverBindingsObject.json" + "$ref": "http://asyncapi.com/definitions/3.0.0/operationReplyAddress.json" } ] } } }, - "channelBindings": { + "schemas": { + "description": "An object to hold reusable Schema Object. If this is a Schema Object, then the schemaFormat will be assumed to be 'application/vnd.aai.asyncapi+json;version=asyncapi' where the version is equal to the AsyncAPI Version String.", + "type": "object", + "patternProperties": { + "^[\\w\\d\\.\\-_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/anySchema.json" + } + } + }, + "securitySchemes": { + "description": "An object to hold reusable Security Scheme Objects.", "type": "object", - "description": "An object to hold reusable Channel Bindings Objects.", "patternProperties": { "^[\\w\\d\\.\\-_]+$": { "oneOf": [ @@ -234,15 +230,15 @@ "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" }, { - "$ref": "http://asyncapi.com/definitions/3.0.0/channelBindingsObject.json" + "$ref": "http://asyncapi.com/definitions/3.0.0/SecurityScheme.json" } ] } } }, - "operationBindings": { + "serverBindings": { + "description": "An object to hold reusable Server Bindings Objects.", "type": "object", - "description": "An object to hold reusable Operation Bindings Objects.", "patternProperties": { "^[\\w\\d\\.\\-_]+$": { "oneOf": [ @@ -250,15 +246,15 @@ "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" }, { - "$ref": "http://asyncapi.com/definitions/3.0.0/operationBindingsObject.json" + "$ref": "http://asyncapi.com/definitions/3.0.0/serverBindingsObject.json" } ] } } }, - "messageBindings": { + "serverVariables": { + "description": "An object to hold reusable Server Variable Objects.", "type": "object", - "description": "An object to hold reusable Message Bindings Objects.", "patternProperties": { "^[\\w\\d\\.\\-_]+$": { "oneOf": [ @@ -266,15 +262,15 @@ "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" }, { - "$ref": "http://asyncapi.com/definitions/3.0.0/messageBindingsObject.json" + "$ref": "http://asyncapi.com/definitions/3.0.0/serverVariable.json" } ] } } }, - "tags": { + "servers": { + "description": "An object to hold reusable Server Objects.", "type": "object", - "description": "An object to hold reusable Tag Objects.", "patternProperties": { "^[\\w\\d\\.\\-_]+$": { "oneOf": [ @@ -282,15 +278,15 @@ "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" }, { - "$ref": "http://asyncapi.com/definitions/3.0.0/tag.json" + "$ref": "http://asyncapi.com/definitions/3.0.0/server.json" } ] } } }, - "externalDocs": { + "tags": { + "description": "An object to hold reusable Tag Objects.", "type": "object", - "description": "An object to hold reusable External Documentation Objects.", "patternProperties": { "^[\\w\\d\\.\\-_]+$": { "oneOf": [ @@ -298,16 +294,20 @@ "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" }, { - "$ref": "http://asyncapi.com/definitions/3.0.0/externalDocs.json" + "$ref": "http://asyncapi.com/definitions/3.0.0/tag.json" } ] } } } }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + } + }, + "additionalProperties": false, "example": { "$ref": "http://asyncapi.com/examples/3.0.0/components.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/components.json" + } } diff --git a/definitions/3.0.0/contact.json b/definitions/3.0.0/contact.json index 5356d4e2..c8bb89f1 100644 --- a/definitions/3.0.0/contact.json +++ b/definitions/3.0.0/contact.json @@ -1,21 +1,22 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/contact.json", "description": "Contact information for the exposed API.", - "additionalProperties": false, + "type": "object", "properties": { - "name": { + "email": { + "description": "The email address of the contact person/organization.", "type": "string", - "description": "The identifying name of the contact person/organization." + "format": "email" + }, + "name": { + "description": "The identifying name of the contact person/organization.", + "type": "string" }, "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" + "format": "uri" } }, "patternProperties": { @@ -23,9 +24,8 @@ "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } }, + "additionalProperties": false, "example": { "$ref": "http://asyncapi.com/examples/3.0.0/contact.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/contact.json" + } } diff --git a/definitions/3.0.0/correlationId.json b/definitions/3.0.0/correlationId.json index 18aa99a2..e22c604c 100644 --- a/definitions/3.0.0/correlationId.json +++ b/definitions/3.0.0/correlationId.json @@ -1,29 +1,29 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/correlationId.json", "description": "An object that specifies an identifier at design time that can used for message tracing and correlation.", + "type": "object", "required": [ "location" ], - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" - } - }, "properties": { "description": { - "type": "string", - "description": "A optional description of the correlation ID. GitHub Flavored Markdown is allowed." + "description": "A optional description of the correlation ID. GitHub Flavored Markdown is allowed.", + "type": "string" }, "location": { - "type": "string", "description": "A runtime expression that specifies the location of the correlation ID", + "type": "string", "pattern": "^\\$message\\.(header|payload)#(\\/(([^\\/~])|(~[01]))*)*" } }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + } + }, + "additionalProperties": false, "example": { "$ref": "http://asyncapi.com/examples/3.0.0/correlationId.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/correlationId.json" + } } diff --git a/definitions/3.0.0/externalDocs.json b/definitions/3.0.0/externalDocs.json index 3ab83718..9b91161e 100644 --- a/definitions/3.0.0/externalDocs.json +++ b/definitions/3.0.0/externalDocs.json @@ -1,18 +1,19 @@ { - "type": "object", - "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/externalDocs.json", "description": "Allows referencing an external resource for extended documentation.", + "type": "object", "required": [ "url" ], "properties": { "description": { - "type": "string", - "description": "A short description of the target documentation. CommonMark syntax can be used for rich text representation." + "description": "A short description of the target documentation. CommonMark syntax can be used for rich text representation.", + "type": "string" }, "url": { - "type": "string", "description": "The URL for the target documentation. This MUST be in the form of an absolute URL.", + "type": "string", "format": "uri" } }, @@ -21,9 +22,8 @@ "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } }, + "additionalProperties": false, "example": { "$ref": "http://asyncapi.com/examples/3.0.0/externalDocs.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/externalDocs.json" + } } diff --git a/definitions/3.0.0/info.json b/definitions/3.0.0/info.json index 034eb5ab..3c86280f 100644 --- a/definitions/3.0.0/info.json +++ b/definitions/3.0.0/info.json @@ -1,42 +1,43 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/info.json", "description": "The object provides metadata about the API. The metadata can be used by the clients if needed.", "allOf": [ - { + { "type": "object", - "required": ["version", "title"], - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" - } - }, + "required": [ + "version", + "title" + ], "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": "A unique and precise title of the API.", + "type": "string" }, "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" + "description": "A longer description of the API. Should be different from the title. CommonMark is allowed.", + "type": "string" }, "contact": { "$ref": "http://asyncapi.com/definitions/3.0.0/contact.json" }, + "externalDocs": { + "oneOf": [ + { + "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" + }, + { + "$ref": "http://asyncapi.com/definitions/3.0.0/externalDocs.json" + } + ] + }, "license": { "$ref": "http://asyncapi.com/definitions/3.0.0/license.json" }, "tags": { - "type": "array", "description": "A list of tags for application API documentation control. Tags can be used for logical grouping of applications.", + "type": "array", + "uniqueItems": true, "items": { "oneOf": [ { @@ -46,20 +47,24 @@ "$ref": "http://asyncapi.com/definitions/3.0.0/tag.json" } ] - }, - "uniqueItems": true + } }, - "externalDocs": { - "oneOf": [ - { - "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" - }, - { - "$ref": "http://asyncapi.com/definitions/3.0.0/externalDocs.json" - } - ] + "termsOfService": { + "description": "A URL to the Terms of Service for the API. MUST be in the format of a URL.", + "type": "string", + "format": "uri" + }, + "version": { + "description": "A semantic version number of the API.", + "type": "string" } - } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + } + }, + "additionalProperties": false }, { "$ref": "http://asyncapi.com/definitions/3.0.0/infoExtensions.json" @@ -67,7 +72,5 @@ ], "example": { "$ref": "http://asyncapi.com/examples/3.0.0/info.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/info.json" -} \ No newline at end of file + } +} diff --git a/definitions/3.0.0/infoExtensions.json b/definitions/3.0.0/infoExtensions.json index 0c7f505f..20aecb35 100644 --- a/definitions/3.0.0/infoExtensions.json +++ b/definitions/3.0.0/infoExtensions.json @@ -1,14 +1,14 @@ { - "type": "object", - "description": "The object that lists all the extensions of Info", - "properties": { - "x-x":{ - "$ref": "http://asyncapi.com/extensions/x/0.1.0/schema.json" - }, - "x-linkedin":{ - "$ref": "http://asyncapi.com/extensions/linkedin/0.1.0/schema.json" - } + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/infoExtensions.json", + "description": "The object that lists all the extensions of Info", + "type": "object", + "properties": { + "x-linkedin": { + "$ref": "http://asyncapi.com/extensions/linkedin/0.1.0/schema.json" }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/infoExtensions.json" + "x-x": { + "$ref": "http://asyncapi.com/extensions/x/0.1.0/schema.json" + } + } } diff --git a/definitions/3.0.0/license.json b/definitions/3.0.0/license.json index 06a5518e..23325532 100644 --- a/definitions/3.0.0/license.json +++ b/definitions/3.0.0/license.json @@ -1,26 +1,28 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/license.json", "type": "object", - "required": ["name"], - "additionalProperties": false, + "required": [ + "name" + ], "properties": { "name": { - "type": "string", - "description": "The name of the license type. It's encouraged to use an OSI compatible license." + "description": "The name of the license type. It's encouraged to use an OSI compatible license.", + "type": "string" }, "url": { - "type": "string", "description": "The URL pointing to the license.", + "type": "string", "format": "uri" } }, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } }, + "additionalProperties": false, "example": { "$ref": "http://asyncapi.com/examples/3.0.0/license.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/license.json" + } } diff --git a/definitions/3.0.0/messageBindingsObject.json b/definitions/3.0.0/messageBindingsObject.json index 1ba3c582..c3dc6d8e 100644 --- a/definitions/3.0.0/messageBindingsObject.json +++ b/definitions/3.0.0/messageBindingsObject.json @@ -1,19 +1,10 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/messageBindingsObject.json", "description": "Map describing protocol-specific definitions for a message.", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" - } - }, + "type": "object", "properties": { - "http": { - "properties": { - "bindingVersion": { - "enum": ["0.2.0", "0.3.0"] - } - }, + "amqp": { "allOf": [ { "description": "If no bindingVersion specified, use the latest binding", @@ -25,44 +16,35 @@ } }, "then": { - "$ref": "http://asyncapi.com/bindings/http/0.3.0/message.json" - } - }, - { - "if": { - "required": [ "bindingVersion" ], - "properties": { - "bindingVersion": { - "const": "0.2.0" - } - } - }, - "then": { - "$ref": "http://asyncapi.com/bindings/http/0.2.0/message.json" + "$ref": "http://asyncapi.com/bindings/amqp/0.3.0/message.json" } }, { "if": { - "required": [ "bindingVersion" ], + "required": [ + "bindingVersion" + ], "properties": { "bindingVersion": { "const": "0.3.0" } } - }, + }, "then": { - "$ref": "http://asyncapi.com/bindings/http/0.3.0/message.json" + "$ref": "http://asyncapi.com/bindings/amqp/0.3.0/message.json" } } - ] - }, - "ws": {}, - "amqp": { + ], "properties": { "bindingVersion": { - "enum": ["0.3.0"] + "enum": [ + "0.3.0" + ] } - }, + } + }, + "amqp1": {}, + "anypointmq": { "allOf": [ { "description": "If no bindingVersion specified, use the latest binding", @@ -74,31 +56,34 @@ } }, "then": { - "$ref": "http://asyncapi.com/bindings/amqp/0.3.0/message.json" + "$ref": "http://asyncapi.com/bindings/anypointmq/0.0.1/message.json" } }, { "if": { - "required": [ "bindingVersion" ], + "required": [ + "bindingVersion" + ], "properties": { "bindingVersion": { - "const": "0.3.0" + "const": "0.0.1" } } - }, + }, "then": { - "$ref": "http://asyncapi.com/bindings/amqp/0.3.0/message.json" + "$ref": "http://asyncapi.com/bindings/anypointmq/0.0.1/message.json" } } - ] - }, - "amqp1": {}, - "mqtt": { + ], "properties": { "bindingVersion": { - "enum": ["0.2.0"] + "enum": [ + "0.0.1" + ] } - }, + } + }, + "googlepubsub": { "allOf": [ { "description": "If no bindingVersion specified, use the latest binding", @@ -110,30 +95,34 @@ } }, "then": { - "$ref": "http://asyncapi.com/bindings/mqtt/0.2.0/message.json" + "$ref": "http://asyncapi.com/bindings/googlepubsub/0.2.0/message.json" } }, { "if": { - "required": [ "bindingVersion" ], + "required": [ + "bindingVersion" + ], "properties": { "bindingVersion": { "const": "0.2.0" } } - }, + }, "then": { - "$ref": "http://asyncapi.com/bindings/mqtt/0.2.0/message.json" + "$ref": "http://asyncapi.com/bindings/googlepubsub/0.2.0/message.json" } } - ] - }, - "kafka": { + ], "properties": { "bindingVersion": { - "enum": ["0.5.0", "0.4.0", "0.3.0"] + "enum": [ + "0.2.0" + ] } - }, + } + }, + "http": { "allOf": [ { "description": "If no bindingVersion specified, use the latest binding", @@ -145,56 +134,50 @@ } }, "then": { - "$ref": "http://asyncapi.com/bindings/kafka/0.5.0/message.json" + "$ref": "http://asyncapi.com/bindings/http/0.3.0/message.json" } }, { "if": { - "required": [ "bindingVersion" ], + "required": [ + "bindingVersion" + ], "properties": { "bindingVersion": { - "const": "0.5.0" + "const": "0.2.0" } } }, "then": { - "$ref": "http://asyncapi.com/bindings/kafka/0.5.0/message.json" - } - }, - { - "if": { - "required": [ "bindingVersion" ], - "properties": { - "bindingVersion": { - "const": "0.4.0" - } - } - }, - "then": { - "$ref": "http://asyncapi.com/bindings/kafka/0.4.0/message.json" + "$ref": "http://asyncapi.com/bindings/http/0.2.0/message.json" } }, { "if": { - "required": [ "bindingVersion" ], + "required": [ + "bindingVersion" + ], "properties": { "bindingVersion": { "const": "0.3.0" } } - }, + }, "then": { - "$ref": "http://asyncapi.com/bindings/kafka/0.3.0/message.json" + "$ref": "http://asyncapi.com/bindings/http/0.3.0/message.json" } } - ] - }, - "anypointmq": { + ], "properties": { "bindingVersion": { - "enum": ["0.0.1"] + "enum": [ + "0.2.0", + "0.3.0" + ] } - }, + } + }, + "ibmmq": { "allOf": [ { "description": "If no bindingVersion specified, use the latest binding", @@ -206,31 +189,34 @@ } }, "then": { - "$ref": "http://asyncapi.com/bindings/anypointmq/0.0.1/message.json" + "$ref": "http://asyncapi.com/bindings/ibmmq/0.1.0/message.json" } }, { "if": { - "required": [ "bindingVersion" ], + "required": [ + "bindingVersion" + ], "properties": { "bindingVersion": { - "const": "0.0.1" + "const": "0.1.0" } } - }, + }, "then": { - "$ref": "http://asyncapi.com/bindings/anypointmq/0.0.1/message.json" + "$ref": "http://asyncapi.com/bindings/ibmmq/0.1.0/message.json" } } - ] - }, - "nats": {}, - "jms": { + ], "properties": { "bindingVersion": { - "enum": ["0.0.1"] + "enum": [ + "0.1.0" + ] } - }, + } + }, + "jms": { "allOf": [ { "description": "If no bindingVersion specified, use the latest binding", @@ -247,29 +233,29 @@ }, { "if": { - "required": [ "bindingVersion" ], + "required": [ + "bindingVersion" + ], "properties": { "bindingVersion": { "const": "0.0.1" } } - }, + }, "then": { "$ref": "http://asyncapi.com/bindings/jms/0.0.1/message.json" } } - ] - }, - "sns": {}, - "sqs": {}, - "stomp": {}, - "redis": {}, - "ibmmq": { + ], "properties": { "bindingVersion": { - "enum": ["0.1.0"] + "enum": [ + "0.0.1" + ] } - }, + } + }, + "kafka": { "allOf": [ { "description": "If no bindingVersion specified, use the latest binding", @@ -281,31 +267,66 @@ } }, "then": { - "$ref": "http://asyncapi.com/bindings/ibmmq/0.1.0/message.json" + "$ref": "http://asyncapi.com/bindings/kafka/0.5.0/message.json" } }, { "if": { - "required": [ "bindingVersion" ], + "required": [ + "bindingVersion" + ], "properties": { "bindingVersion": { - "const": "0.1.0" + "const": "0.5.0" } } - }, + }, "then": { - "$ref": "http://asyncapi.com/bindings/ibmmq/0.1.0/message.json" + "$ref": "http://asyncapi.com/bindings/kafka/0.5.0/message.json" + } + }, + { + "if": { + "required": [ + "bindingVersion" + ], + "properties": { + "bindingVersion": { + "const": "0.4.0" + } + } + }, + "then": { + "$ref": "http://asyncapi.com/bindings/kafka/0.4.0/message.json" + } + }, + { + "if": { + "required": [ + "bindingVersion" + ], + "properties": { + "bindingVersion": { + "const": "0.3.0" + } + } + }, + "then": { + "$ref": "http://asyncapi.com/bindings/kafka/0.3.0/message.json" } } - ] - }, - "solace": {}, - "googlepubsub": { + ], "properties": { "bindingVersion": { - "enum": ["0.2.0"] + "enum": [ + "0.5.0", + "0.4.0", + "0.3.0" + ] } - }, + } + }, + "mqtt": { "allOf": [ { "description": "If no bindingVersion specified, use the latest binding", @@ -317,25 +338,45 @@ } }, "then": { - "$ref": "http://asyncapi.com/bindings/googlepubsub/0.2.0/message.json" + "$ref": "http://asyncapi.com/bindings/mqtt/0.2.0/message.json" } }, { "if": { - "required": [ "bindingVersion" ], + "required": [ + "bindingVersion" + ], "properties": { "bindingVersion": { "const": "0.2.0" } } - }, + }, "then": { - "$ref": "http://asyncapi.com/bindings/googlepubsub/0.2.0/message.json" + "$ref": "http://asyncapi.com/bindings/mqtt/0.2.0/message.json" } } - ] + ], + "properties": { + "bindingVersion": { + "enum": [ + "0.2.0" + ] + } + } + }, + "nats": {}, + "redis": {}, + "sns": {}, + "solace": {}, + "sqs": {}, + "stomp": {}, + "ws": {} + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/messageBindingsObject.json" + "additionalProperties": false } diff --git a/definitions/3.0.0/messageExampleObject.json b/definitions/3.0.0/messageExampleObject.json index 3a59ffcf..7c6cc676 100644 --- a/definitions/3.0.0/messageExampleObject.json +++ b/definitions/3.0.0/messageExampleObject.json @@ -1,6 +1,7 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/messageExampleObject.json", "type": "object", - "additionalProperties": false, "anyOf": [ { "required": [ @@ -14,22 +15,21 @@ } ], "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", - "description": "Example of the application headers. It can be of any type." + "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" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/messageExampleObject.json" + "additionalProperties": false } diff --git a/definitions/3.0.0/messageObject.json b/definitions/3.0.0/messageObject.json index f8cd37bb..afa722dc 100644 --- a/definitions/3.0.0/messageObject.json +++ b/definitions/3.0.0/messageObject.json @@ -1,97 +1,93 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/messageObject.json", "description": "Describes a message received on a given channel and operation.", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" - } - }, + "type": "object", "properties": { - "contentType": { - "type": "string", - "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." + "title": { + "description": "A human-friendly title for the message.", + "type": "string" }, - "headers": { - "$ref": "http://asyncapi.com/definitions/3.0.0/anySchema.json" + "description": { + "description": "A longer description of the message. CommonMark is allowed.", + "type": "string" }, - "payload": { - "$ref": "http://asyncapi.com/definitions/3.0.0/anySchema.json" + "examples": { + "description": "List of examples.", + "type": "array", + "items": { + "$ref": "http://asyncapi.com/definitions/3.0.0/messageExampleObject.json" + } }, - "correlationId": { + "deprecated": { + "default": false, + "type": "boolean" + }, + "bindings": { "oneOf": [ { "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" }, { - "$ref": "http://asyncapi.com/definitions/3.0.0/correlationId.json" + "$ref": "http://asyncapi.com/definitions/3.0.0/messageBindingsObject.json" } ] }, - "tags": { - "type": "array", - "items": { - "oneOf": [ - { - "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" - }, - { - "$ref": "http://asyncapi.com/definitions/3.0.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." + "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" }, - "externalDocs": { + "correlationId": { "oneOf": [ { "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" }, { - "$ref": "http://asyncapi.com/definitions/3.0.0/externalDocs.json" + "$ref": "http://asyncapi.com/definitions/3.0.0/correlationId.json" } ] }, - "deprecated": { - "type": "boolean", - "default": false - }, - "examples": { - "type": "array", - "description": "List of examples.", - "items": { - "$ref": "http://asyncapi.com/definitions/3.0.0/messageExampleObject.json" - } - }, - "bindings": { + "externalDocs": { "oneOf": [ { "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" }, { - "$ref": "http://asyncapi.com/definitions/3.0.0/messageBindingsObject.json" + "$ref": "http://asyncapi.com/definitions/3.0.0/externalDocs.json" } ] }, - "traits": { + "headers": { + "$ref": "http://asyncapi.com/definitions/3.0.0/anySchema.json" + }, + "name": { + "description": "Name of the message.", + "type": "string" + }, + "payload": { + "$ref": "http://asyncapi.com/definitions/3.0.0/anySchema.json" + }, + "summary": { + "description": "A brief summary of the message.", + "type": "string" + }, + "tags": { "type": "array", + "uniqueItems": true, + "items": { + "oneOf": [ + { + "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" + }, + { + "$ref": "http://asyncapi.com/definitions/3.0.0/tag.json" + } + ] + } + }, + "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": [ { @@ -123,9 +119,13 @@ } } }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + } + }, + "additionalProperties": false, "example": { "$ref": "http://asyncapi.com/examples/3.0.0/messageObject.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/messageObject.json" + } } diff --git a/definitions/3.0.0/messageTrait.json b/definitions/3.0.0/messageTrait.json index 3e5d4829..8f917ea0 100644 --- a/definitions/3.0.0/messageTrait.json +++ b/definitions/3.0.0/messageTrait.json @@ -1,95 +1,95 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/messageTrait.json", "description": "Describes a trait that MAY be applied to a Message Object. This object MAY contain any property from the Message Object, except payload and traits.", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" - } - }, + "type": "object", "properties": { - "contentType": { - "type": "string", - "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." + "title": { + "description": "A human-friendly title for the message.", + "type": "string" }, - "headers": { - "$ref": "http://asyncapi.com/definitions/3.0.0/anySchema.json" + "description": { + "description": "A longer description of the message. CommonMark is allowed.", + "type": "string" }, - "correlationId": { + "examples": { + "description": "List of examples.", + "type": "array", + "items": { + "$ref": "http://asyncapi.com/definitions/3.0.0/messageExampleObject.json" + } + }, + "deprecated": { + "default": false, + "type": "boolean" + }, + "bindings": { "oneOf": [ { "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" }, { - "$ref": "http://asyncapi.com/definitions/3.0.0/correlationId.json" + "$ref": "http://asyncapi.com/definitions/3.0.0/messageBindingsObject.json" } ] }, - "tags": { - "type": "array", - "items": { - "oneOf": [ - { - "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" - }, - { - "$ref": "http://asyncapi.com/definitions/3.0.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." + "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" }, - "externalDocs": { + "correlationId": { "oneOf": [ { "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" }, { - "$ref": "http://asyncapi.com/definitions/3.0.0/externalDocs.json" + "$ref": "http://asyncapi.com/definitions/3.0.0/correlationId.json" } ] }, - "deprecated": { - "type": "boolean", - "default": false - }, - "examples": { - "type": "array", - "description": "List of examples.", - "items": { - "$ref": "http://asyncapi.com/definitions/3.0.0/messageExampleObject.json" - } - }, - "bindings": { + "externalDocs": { "oneOf": [ { "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" }, { - "$ref": "http://asyncapi.com/definitions/3.0.0/messageBindingsObject.json" + "$ref": "http://asyncapi.com/definitions/3.0.0/externalDocs.json" } ] + }, + "headers": { + "$ref": "http://asyncapi.com/definitions/3.0.0/anySchema.json" + }, + "name": { + "description": "Name of the message.", + "type": "string" + }, + "summary": { + "description": "A brief summary of the message.", + "type": "string" + }, + "tags": { + "type": "array", + "uniqueItems": true, + "items": { + "oneOf": [ + { + "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" + }, + { + "$ref": "http://asyncapi.com/definitions/3.0.0/tag.json" + } + ] + } } }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + } + }, + "additionalProperties": false, "example": { "$ref": "http://asyncapi.com/examples/3.0.0/messageTrait.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/messageTrait.json" + } } diff --git a/definitions/3.0.0/messages.json b/definitions/3.0.0/messages.json index f244339e..b0618ff7 100644 --- a/definitions/3.0.0/messages.json +++ b/definitions/3.0.0/messages.json @@ -1,4 +1,7 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/messages.json", + "description": "JSON objects describing the messages being consumed and produced by the API.", "type": "object", "additionalProperties": { "oneOf": [ @@ -9,8 +12,5 @@ "$ref": "http://asyncapi.com/definitions/3.0.0/messageObject.json" } ] - }, - "description": "JSON objects describing the messages being consumed and produced by the API.", - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/messages.json" -} \ No newline at end of file + } +} diff --git a/definitions/3.0.0/multiFormatSchema.json b/definitions/3.0.0/multiFormatSchema.json index 077cdcf6..d9334d5c 100644 --- a/definitions/3.0.0/multiFormatSchema.json +++ b/definitions/3.0.0/multiFormatSchema.json @@ -1,11 +1,8 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/multiFormatSchema.json", "description": "The Multi Format Schema Object represents a schema definition. It differs from the Schema Object in that it supports multiple schema formats or languages (e.g., JSON Schema, Avro, etc.).", "type": "object", - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" - } - }, "if": { "not": { "type": "object" @@ -15,41 +12,6 @@ "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" }, "else": { - "properties": { - "schemaFormat": { - "description": "A string containing the name of the schema format that is used to define the information. If schemaFormat is missing, it MUST default to application/vnd.aai.asyncapi+json;version={{asyncapi}} where {{asyncapi}} matches the AsyncAPI Version String. In such a case, this would make the Multi Format Schema Object equivalent to the Schema Object. When using Reference Object within the schema, the schemaFormat of the resource being referenced MUST match the schemaFormat of the schema that contains the initial reference. For example, if you reference Avro schema, then schemaFormat of referencing resource and the resource being reference MUST match.", - "anyOf": [ - { - "type": "string" - }, - { - "description": "All the schema formats tooling MUST support", - "enum": [ - "application/schema+json;version=draft-07", - "application/schema+yaml;version=draft-07", - - "application/vnd.aai.asyncapi;version=3.0.0", - "application/vnd.aai.asyncapi+json;version=3.0.0", - "application/vnd.aai.asyncapi+yaml;version=3.0.0" - ] - }, - { - "description": "All the schema formats tools are RECOMMENDED to support", - "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", - - "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", - - "application/raml+yaml;version=1.0" - ] - } - ] - } - }, "allOf": [ { "if": { @@ -195,8 +157,43 @@ } } } - ] + ], + "properties": { + "schemaFormat": { + "description": "A string containing the name of the schema format that is used to define the information. If schemaFormat is missing, it MUST default to application/vnd.aai.asyncapi+json;version={{asyncapi}} where {{asyncapi}} matches the AsyncAPI Version String. In such a case, this would make the Multi Format Schema Object equivalent to the Schema Object. When using Reference Object within the schema, the schemaFormat of the resource being referenced MUST match the schemaFormat of the schema that contains the initial reference. For example, if you reference Avro schema, then schemaFormat of referencing resource and the resource being reference MUST match.", + "anyOf": [ + { + "type": "string" + }, + { + "description": "All the schema formats tooling MUST support", + "enum": [ + "application/schema+json;version=draft-07", + "application/schema+yaml;version=draft-07", + "application/vnd.aai.asyncapi;version=3.0.0", + "application/vnd.aai.asyncapi+json;version=3.0.0", + "application/vnd.aai.asyncapi+yaml;version=3.0.0" + ] + }, + { + "description": "All the schema formats tools are RECOMMENDED to support", + "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", + "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", + "application/raml+yaml;version=1.0" + ] + } + ] + } + } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/multiFormatSchema.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + } + } +} diff --git a/definitions/3.0.0/oauth2Flow.json b/definitions/3.0.0/oauth2Flow.json index ef1e7c95..694a4e26 100644 --- a/definitions/3.0.0/oauth2Flow.json +++ b/definitions/3.0.0/oauth2Flow.json @@ -1,25 +1,27 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/oauth2Flow.json", "description": "Configuration details for a supported OAuth Flow", + "type": "object", "properties": { "authorizationUrl": { + "description": "The authorization URL to be used for this flow. This MUST be in the form of an absolute URL.", "type": "string", - "format": "uri", - "description": "The authorization URL to be used for this flow. This MUST be in the form of an absolute URL." + "format": "uri" }, - "tokenUrl": { - "type": "string", - "format": "uri", - "description": "The token URL to be used for this flow. This MUST be in the form of an absolute URL." + "availableScopes": { + "description": "The available scopes for the OAuth2 security scheme. A map between the scope name and a short description for it.", + "$ref": "http://asyncapi.com/definitions/3.0.0/oauth2Scopes.json" }, "refreshUrl": { + "description": "The URL to be used for obtaining refresh tokens. This MUST be in the form of an absolute URL.", "type": "string", - "format": "uri", - "description": "The URL to be used for obtaining refresh tokens. This MUST be in the form of an absolute URL." + "format": "uri" }, - "availableScopes": { - "$ref": "http://asyncapi.com/definitions/3.0.0/oauth2Scopes.json", - "description": "The available scopes for the OAuth2 security scheme. A map between the scope name and a short description for it." + "tokenUrl": { + "description": "The token URL to be used for this flow. This MUST be in the form of an absolute URL.", + "type": "string", + "format": "uri" } }, "patternProperties": { @@ -27,10 +29,8 @@ "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } }, + "additionalProperties": false, "example": { "$ref": "http://asyncapi.com/examples/3.0.0/oauth2Flow.json" - }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/oauth2Flow.json" + } } diff --git a/definitions/3.0.0/oauth2Flows.json b/definitions/3.0.0/oauth2Flows.json index 3cb9cecf..99e1d2fe 100644 --- a/definitions/3.0.0/oauth2Flows.json +++ b/definitions/3.0.0/oauth2Flows.json @@ -1,27 +1,29 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/oauth2Flows.json", "description": "Allows configuration of the supported OAuth Flows.", + "type": "object", "required": [ "type", "flows" ], "properties": { + "description": { + "description": "A short description for security scheme.", + "type": "string" + }, "type": { - "type": "string", "description": "The type of the security scheme.", + "type": "string", "enum": [ "oauth2" ] }, - "description": { - "type": "string", - "description": "A short description for security scheme." - }, "flows": { "type": "object", "properties": { - "implicit": { - "description": "Configuration for the OAuth Implicit flow.", + "authorizationCode": { + "description": "Configuration for the OAuth Authorization Code flow.", "allOf": [ { "$ref": "http://asyncapi.com/definitions/3.0.0/oauth2Flow.json" @@ -29,20 +31,14 @@ { "required": [ "authorizationUrl", + "tokenUrl", "availableScopes" ] - }, - { - "not": { - "required": [ - "tokenUrl" - ] - } } ] }, - "password": { - "description": "Configuration for the OAuth Resource Owner Protected Credentials flow.", + "clientCredentials": { + "description": "Configuration for the OAuth Client Credentials flow.", "allOf": [ { "$ref": "http://asyncapi.com/definitions/3.0.0/oauth2Flow.json" @@ -62,39 +58,45 @@ } ] }, - "clientCredentials": { - "description": "Configuration for the OAuth Client Credentials flow.", + "implicit": { + "description": "Configuration for the OAuth Implicit flow.", "allOf": [ { "$ref": "http://asyncapi.com/definitions/3.0.0/oauth2Flow.json" }, { "required": [ - "tokenUrl", + "authorizationUrl", "availableScopes" ] }, { "not": { "required": [ - "authorizationUrl" + "tokenUrl" ] } } ] }, - "authorizationCode": { - "description": "Configuration for the OAuth Authorization Code flow.", + "password": { + "description": "Configuration for the OAuth Resource Owner Protected Credentials flow.", "allOf": [ { "$ref": "http://asyncapi.com/definitions/3.0.0/oauth2Flow.json" }, { "required": [ - "authorizationUrl", "tokenUrl", "availableScopes" ] + }, + { + "not": { + "required": [ + "authorizationUrl" + ] + } } ] } @@ -102,8 +104,8 @@ "additionalProperties": false }, "scopes": { - "type": "array", "description": "List of the needed scope names.", + "type": "array", "items": { "type": "string" } @@ -113,7 +115,5 @@ "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/oauth2Flows.json" + } } diff --git a/definitions/3.0.0/oauth2Scopes.json b/definitions/3.0.0/oauth2Scopes.json index 4e26a71e..f412c97b 100644 --- a/definitions/3.0.0/oauth2Scopes.json +++ b/definitions/3.0.0/oauth2Scopes.json @@ -1,8 +1,8 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/oauth2Scopes.json", "type": "object", "additionalProperties": { "type": "string" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/oauth2Scopes.json" -} \ No newline at end of file + } +} diff --git a/definitions/3.0.0/openIdConnect.json b/definitions/3.0.0/openIdConnect.json index 41b65f5d..dbc090ab 100644 --- a/definitions/3.0.0/openIdConnect.json +++ b/definitions/3.0.0/openIdConnect.json @@ -1,29 +1,31 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/openIdConnect.json", "type": "object", "required": [ "type", "openIdConnectUrl" ], "properties": { + "description": { + "description": "A short description for security scheme. CommonMark syntax MAY be used for rich text representation.", + "type": "string" + }, "type": { - "type": "string", "description": "The type of the security scheme.", + "type": "string", "enum": [ "openIdConnect" ] }, - "description": { - "type": "string", - "description": "A short description for security scheme. CommonMark syntax MAY be used for rich text representation." - }, "openIdConnectUrl": { + "description": "OpenId Connect URL to discover OAuth2 configuration values. This MUST be in the form of an absolute URL.", "type": "string", - "format": "uri", - "description": "OpenId Connect URL to discover OAuth2 configuration values. This MUST be in the form of an absolute URL." + "format": "uri" }, "scopes": { - "type": "array", "description": "List of the needed scope names. An empty array means no scopes are needed.", + "type": "array", "items": { "type": "string" } @@ -34,7 +36,5 @@ "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/openIdConnect.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/3.0.0/operation.json b/definitions/3.0.0/operation.json index 529cfbc5..8c51d8a0 100644 --- a/definitions/3.0.0/operation.json +++ b/definitions/3.0.0/operation.json @@ -1,28 +1,55 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/operation.json", "description": "Describes a specific operation.", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" - } - }, + "type": "object", "required": [ "action", "channel" ], "properties": { + "title": { + "description": "A human-friendly title for the operation.", + "type": "string" + }, + "description": { + "description": "A longer description of the operation. CommonMark is allowed.", + "type": "string" + }, "action": { - "type": "string", "description": "Allowed values are send and receive. Use send when it's expected that the application will send a message to the given channel, and receive when the application should expect receiving messages from the given channel.", - "enum": ["send", "receive"] + "type": "string", + "enum": [ + "send", + "receive" + ] + }, + "bindings": { + "oneOf": [ + { + "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" + }, + { + "$ref": "http://asyncapi.com/definitions/3.0.0/operationBindingsObject.json" + } + ] }, "channel": { "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" }, + "externalDocs": { + "oneOf": [ + { + "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" + }, + { + "$ref": "http://asyncapi.com/definitions/3.0.0/externalDocs.json" + } + ] + }, "messages": { - "type": "array", "description": "A list of $ref pointers pointing to the supported Message Objects that can be processed by this operation. It MUST contain a subset of the messages defined in the channel referenced in this operation. Every message processed by this operation MUST be valid against one, and only one, of the message objects referenced in this list. Please note the messages property value MUST be a list of Reference Objects and, therefore, MUST NOT contain Message Objects. However, it is RECOMMENDED that parsers (or other software) dereference this property for a better development experience.", + "type": "array", "items": { "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" } @@ -37,74 +64,50 @@ } ] }, - "traits": { + "security": { + "$ref": "http://asyncapi.com/definitions/3.0.0/securityRequirements.json" + }, + "summary": { + "description": "A brief summary of the operation.", + "type": "string" + }, + "tags": { + "description": "A list of tags for logical grouping and categorization of operations.", "type": "array", - "description": "A list of traits to apply to the operation object. Traits MUST be merged using traits merge mechanism. The resulting object MUST be a valid Operation Object.", + "uniqueItems": true, "items": { "oneOf": [ { "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" }, { - "$ref": "http://asyncapi.com/definitions/3.0.0/operationTrait.json" + "$ref": "http://asyncapi.com/definitions/3.0.0/tag.json" } ] } }, - "title": { - "type": "string", - "description": "A human-friendly title for the operation." - }, - "summary": { - "type": "string", - "description": "A brief summary of the operation." - }, - "description": { - "type": "string", - "description": "A longer description of the operation. CommonMark is allowed." - }, - "security": { - "$ref": "http://asyncapi.com/definitions/3.0.0/securityRequirements.json" - }, - "tags": { + "traits": { + "description": "A list of traits to apply to the operation object. Traits MUST be merged using traits merge mechanism. The resulting object MUST be a valid Operation Object.", "type": "array", - "description": "A list of tags for logical grouping and categorization of operations.", "items": { "oneOf": [ { "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" }, { - "$ref": "http://asyncapi.com/definitions/3.0.0/tag.json" + "$ref": "http://asyncapi.com/definitions/3.0.0/operationTrait.json" } ] - }, - "uniqueItems": true - }, - "externalDocs": { - "oneOf": [ - { - "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" - }, - { - "$ref": "http://asyncapi.com/definitions/3.0.0/externalDocs.json" - } - ] - }, - "bindings": { - "oneOf": [ - { - "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" - }, - { - "$ref": "http://asyncapi.com/definitions/3.0.0/operationBindingsObject.json" - } - ] + } + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } }, + "additionalProperties": false, "example": { "$ref": "http://asyncapi.com/examples/3.0.0/operation.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/operation.json" + } } diff --git a/definitions/3.0.0/operationBindingsObject.json b/definitions/3.0.0/operationBindingsObject.json index dd1744d6..6be3ebf2 100644 --- a/definitions/3.0.0/operationBindingsObject.json +++ b/definitions/3.0.0/operationBindingsObject.json @@ -1,19 +1,10 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/operationBindingsObject.json", "description": "Map describing protocol-specific definitions for an operation.", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" - } - }, + "type": "object", "properties": { - "http": { - "properties": { - "bindingVersion": { - "enum": ["0.2.0", "0.3.0"] - } - }, + "amqp": { "allOf": [ { "description": "If no bindingVersion specified, use the latest binding", @@ -25,44 +16,37 @@ } }, "then": { - "$ref": "http://asyncapi.com/bindings/http/0.3.0/operation.json" - } - }, - { - "if": { - "required": [ "bindingVersion" ], - "properties": { - "bindingVersion": { - "const": "0.2.0" - } - } - }, - "then": { - "$ref": "http://asyncapi.com/bindings/http/0.2.0/operation.json" + "$ref": "http://asyncapi.com/bindings/amqp/0.3.0/operation.json" } }, { "if": { - "required": [ "bindingVersion" ], + "required": [ + "bindingVersion" + ], "properties": { "bindingVersion": { "const": "0.3.0" } } - }, + }, "then": { - "$ref": "http://asyncapi.com/bindings/http/0.3.0/operation.json" + "$ref": "http://asyncapi.com/bindings/amqp/0.3.0/operation.json" } } - ] - }, - "ws": {}, - "amqp": { + ], "properties": { "bindingVersion": { - "enum": ["0.3.0"] + "enum": [ + "0.3.0" + ] } - }, + } + }, + "amqp1": {}, + "anypointmq": {}, + "googlepubsub": {}, + "http": { "allOf": [ { "description": "If no bindingVersion specified, use the latest binding", @@ -74,66 +58,52 @@ } }, "then": { - "$ref": "http://asyncapi.com/bindings/amqp/0.3.0/operation.json" + "$ref": "http://asyncapi.com/bindings/http/0.3.0/operation.json" } }, { "if": { - "required": [ "bindingVersion" ], + "required": [ + "bindingVersion" + ], "properties": { "bindingVersion": { - "const": "0.3.0" + "const": "0.2.0" } } - }, - "then": { - "$ref": "http://asyncapi.com/bindings/amqp/0.3.0/operation.json" - } - } - ] - }, - "amqp1": {}, - "mqtt": { - "properties": { - "bindingVersion": { - "enum": ["0.2.0"] - } - }, - "allOf": [ - { - "description": "If no bindingVersion specified, use the latest binding", - "if": { - "not": { - "required": [ - "bindingVersion" - ] - } }, "then": { - "$ref": "http://asyncapi.com/bindings/mqtt/0.2.0/operation.json" + "$ref": "http://asyncapi.com/bindings/http/0.2.0/operation.json" } }, { "if": { - "required": [ "bindingVersion" ], + "required": [ + "bindingVersion" + ], "properties": { "bindingVersion": { - "const": "0.2.0" + "const": "0.3.0" } } - }, + }, "then": { - "$ref": "http://asyncapi.com/bindings/mqtt/0.2.0/operation.json" + "$ref": "http://asyncapi.com/bindings/http/0.3.0/operation.json" } } - ] - }, - "kafka": { + ], "properties": { "bindingVersion": { - "enum": ["0.5.0", "0.4.0", "0.3.0"] + "enum": [ + "0.2.0", + "0.3.0" + ] } - }, + } + }, + "ibmmq": {}, + "jms": {}, + "kafka": { "allOf": [ { "description": "If no bindingVersion specified, use the latest binding", @@ -150,7 +120,9 @@ }, { "if": { - "required": [ "bindingVersion" ], + "required": [ + "bindingVersion" + ], "properties": { "bindingVersion": { "const": "0.5.0" @@ -163,39 +135,46 @@ }, { "if": { - "required": [ "bindingVersion" ], + "required": [ + "bindingVersion" + ], "properties": { "bindingVersion": { "const": "0.4.0" } } - }, + }, "then": { "$ref": "http://asyncapi.com/bindings/kafka/0.4.0/operation.json" } }, { "if": { - "required": [ "bindingVersion" ], + "required": [ + "bindingVersion" + ], "properties": { "bindingVersion": { "const": "0.3.0" } } - }, + }, "then": { "$ref": "http://asyncapi.com/bindings/kafka/0.3.0/operation.json" } } - ] - }, - "anypointmq": {}, - "nats": { + ], "properties": { "bindingVersion": { - "enum": ["0.1.0"] + "enum": [ + "0.5.0", + "0.4.0", + "0.3.0" + ] } - }, + } + }, + "mqtt": { "allOf": [ { "description": "If no bindingVersion specified, use the latest binding", @@ -207,31 +186,34 @@ } }, "then": { - "$ref": "http://asyncapi.com/bindings/nats/0.1.0/operation.json" + "$ref": "http://asyncapi.com/bindings/mqtt/0.2.0/operation.json" } }, { "if": { - "required": [ "bindingVersion" ], + "required": [ + "bindingVersion" + ], "properties": { "bindingVersion": { - "const": "0.1.0" + "const": "0.2.0" } } - }, + }, "then": { - "$ref": "http://asyncapi.com/bindings/nats/0.1.0/operation.json" + "$ref": "http://asyncapi.com/bindings/mqtt/0.2.0/operation.json" } } - ] - }, - "jms": {}, - "sns": { + ], "properties": { "bindingVersion": { - "enum": ["0.1.0"] + "enum": [ + "0.2.0" + ] } - }, + } + }, + "nats": { "allOf": [ { "description": "If no bindingVersion specified, use the latest binding", @@ -243,30 +225,35 @@ } }, "then": { - "$ref": "http://asyncapi.com/bindings/sns/0.1.0/operation.json" + "$ref": "http://asyncapi.com/bindings/nats/0.1.0/operation.json" } }, { "if": { - "required": [ "bindingVersion" ], + "required": [ + "bindingVersion" + ], "properties": { "bindingVersion": { "const": "0.1.0" } } - }, + }, "then": { - "$ref": "http://asyncapi.com/bindings/sns/0.1.0/operation.json" + "$ref": "http://asyncapi.com/bindings/nats/0.1.0/operation.json" } } - ] - }, - "sqs": { + ], "properties": { "bindingVersion": { - "enum": ["0.2.0"] + "enum": [ + "0.1.0" + ] } - }, + } + }, + "redis": {}, + "sns": { "allOf": [ { "description": "If no bindingVersion specified, use the latest binding", @@ -278,33 +265,34 @@ } }, "then": { - "$ref": "http://asyncapi.com/bindings/sqs/0.2.0/operation.json" + "$ref": "http://asyncapi.com/bindings/sns/0.1.0/operation.json" } }, { "if": { - "required": [ "bindingVersion" ], + "required": [ + "bindingVersion" + ], "properties": { "bindingVersion": { - "const": "0.2.0" + "const": "0.1.0" } } - }, + }, "then": { - "$ref": "http://asyncapi.com/bindings/sqs/0.2.0/operation.json" + "$ref": "http://asyncapi.com/bindings/sns/0.1.0/operation.json" } } - ] - }, - "stomp": {}, - "redis": {}, - "ibmmq": {}, - "solace": { + ], "properties": { "bindingVersion": { - "enum": ["0.4.0", "0.3.0", "0.2.0"] + "enum": [ + "0.1.0" + ] } - }, + } + }, + "solace": { "allOf": [ { "description": "If no bindingVersion specified, use the latest binding", @@ -321,47 +309,106 @@ }, { "if": { - "required": [ "bindingVersion" ], + "required": [ + "bindingVersion" + ], "properties": { "bindingVersion": { "const": "0.4.0" } } - }, + }, "then": { "$ref": "http://asyncapi.com/bindings/solace/0.4.0/operation.json" } }, { "if": { - "required": [ "bindingVersion" ], + "required": [ + "bindingVersion" + ], "properties": { "bindingVersion": { "const": "0.3.0" } } - }, + }, "then": { "$ref": "http://asyncapi.com/bindings/solace/0.3.0/operation.json" } }, { "if": { - "required": [ "bindingVersion" ], + "required": [ + "bindingVersion" + ], "properties": { "bindingVersion": { "const": "0.2.0" } } - }, + }, "then": { "$ref": "http://asyncapi.com/bindings/solace/0.2.0/operation.json" } } - ] + ], + "properties": { + "bindingVersion": { + "enum": [ + "0.4.0", + "0.3.0", + "0.2.0" + ] + } + } }, - "googlepubsub": {} + "sqs": { + "allOf": [ + { + "description": "If no bindingVersion specified, use the latest binding", + "if": { + "not": { + "required": [ + "bindingVersion" + ] + } + }, + "then": { + "$ref": "http://asyncapi.com/bindings/sqs/0.2.0/operation.json" + } + }, + { + "if": { + "required": [ + "bindingVersion" + ], + "properties": { + "bindingVersion": { + "const": "0.2.0" + } + } + }, + "then": { + "$ref": "http://asyncapi.com/bindings/sqs/0.2.0/operation.json" + } + } + ], + "properties": { + "bindingVersion": { + "enum": [ + "0.2.0" + ] + } + } + }, + "stomp": {}, + "ws": {} }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/operationBindingsObject.json" + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + } + }, + "additionalProperties": false } diff --git a/definitions/3.0.0/operationReply.json b/definitions/3.0.0/operationReply.json index fe1491d9..2148be04 100644 --- a/definitions/3.0.0/operationReply.json +++ b/definitions/3.0.0/operationReply.json @@ -1,12 +1,8 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/operationReply.json", "description": "Describes the reply part that MAY be applied to an Operation Object. If an operation implements the request/reply pattern, the reply object represents the response message.", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" - } - }, + "type": "object", "properties": { "address": { "oneOf": [ @@ -22,13 +18,17 @@ "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" }, "messages": { - "type": "array", "description": "A list of $ref pointers pointing to the supported Message Objects that can be processed by this operation as reply. It MUST contain a subset of the messages defined in the channel referenced in this operation reply. Every message processed by this operation MUST be valid against one, and only one, of the message objects referenced in this list. Please note the messages property value MUST be a list of Reference Objects and, therefore, MUST NOT contain Message Objects. However, it is RECOMMENDED that parsers (or other software) dereference this property for a better development experience.", + "type": "array", "items": { "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" } } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/operationReply.json" -} \ No newline at end of file + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + } + }, + "additionalProperties": false +} diff --git a/definitions/3.0.0/operationReplyAddress.json b/definitions/3.0.0/operationReplyAddress.json index ba29ea12..745fb981 100644 --- a/definitions/3.0.0/operationReplyAddress.json +++ b/definitions/3.0.0/operationReplyAddress.json @@ -1,29 +1,29 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/operationReplyAddress.json", "description": "An object that specifies where an operation has to send the reply", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" - } - }, + "type": "object", "required": [ "location" ], "properties": { + "description": { + "description": "An optional description of the address. CommonMark is allowed.", + "type": "string" + }, "location": { - "type": "string", "description": "A runtime expression that specifies the location of the reply address.", - "pattern": "^\\$message\\.(header|payload)#(\\/(([^\\/~])|(~[01]))*)*" - }, - "description": { "type": "string", - "description": "An optional description of the address. CommonMark is allowed." + "pattern": "^\\$message\\.(header|payload)#(\\/(([^\\/~])|(~[01]))*)*" + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } }, + "additionalProperties": false, "example": { "$ref": "http://asyncapi.com/examples/3.0.0/operationReplyAddress.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/operationReplyAddress.json" + } } diff --git a/definitions/3.0.0/operationTrait.json b/definitions/3.0.0/operationTrait.json index b646001f..e980366e 100644 --- a/definitions/3.0.0/operationTrait.json +++ b/definitions/3.0.0/operationTrait.json @@ -1,37 +1,17 @@ -{ - "type": "object", +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/operationTrait.json", "description": "Describes a trait that MAY be applied to an Operation Object. This object MAY contain any property from the Operation Object, except the action, channel and traits ones.", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" - } - }, + "type": "object", "properties": { "title": { "description": "A human-friendly title for the operation.", "$ref": "http://asyncapi.com/definitions/3.0.0/operation.json#/properties/title" }, - "summary": { - "description": "A short summary of what the operation is about.", - "$ref": "http://asyncapi.com/definitions/3.0.0/operation.json#/properties/summary" - }, "description": { "description": "A verbose explanation of the operation. CommonMark syntax can be used for rich text representation.", "$ref": "http://asyncapi.com/definitions/3.0.0/operation.json#/properties/description" }, - "security": { - "description": "A declaration of which security schemes are associated with this operation. Only one of the security scheme objects MUST be satisfied to authorize an operation. In cases where Server Security also applies, it MUST also be satisfied.", - "$ref": "http://asyncapi.com/definitions/3.0.0/operation.json#/properties/security" - }, - "tags": { - "description": "A list of tags for logical grouping and categorization of operations.", - "$ref": "http://asyncapi.com/definitions/3.0.0/operation.json#/properties/tags" - }, - "externalDocs": { - "description": "Additional external documentation for this operation.", - "$ref": "http://asyncapi.com/definitions/3.0.0/operation.json#/properties/externalDocs" - }, "bindings": { "description": "A map where the keys describe the name of the protocol and the values describe protocol-specific definitions for the operation.", "oneOf": [ @@ -42,11 +22,31 @@ "$ref": "http://asyncapi.com/definitions/3.0.0/operationBindingsObject.json" } ] + }, + "externalDocs": { + "description": "Additional external documentation for this operation.", + "$ref": "http://asyncapi.com/definitions/3.0.0/operation.json#/properties/externalDocs" + }, + "security": { + "description": "A declaration of which security schemes are associated with this operation. Only one of the security scheme objects MUST be satisfied to authorize an operation. In cases where Server Security also applies, it MUST also be satisfied.", + "$ref": "http://asyncapi.com/definitions/3.0.0/operation.json#/properties/security" + }, + "summary": { + "description": "A short summary of what the operation is about.", + "$ref": "http://asyncapi.com/definitions/3.0.0/operation.json#/properties/summary" + }, + "tags": { + "description": "A list of tags for logical grouping and categorization of operations.", + "$ref": "http://asyncapi.com/definitions/3.0.0/operation.json#/properties/tags" + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } }, + "additionalProperties": false, "example": { "$ref": "http://asyncapi.com/examples/3.0.0/operationTrait.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/operationTrait.json" + } } diff --git a/definitions/3.0.0/operations.json b/definitions/3.0.0/operations.json index 7ca51c39..95f8e4e9 100644 --- a/definitions/3.0.0/operations.json +++ b/definitions/3.0.0/operations.json @@ -1,19 +1,19 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/operations.json", "description": "Holds a dictionary with all the operations this application MUST implement.", + "type": "object", "additionalProperties": { "oneOf": [ - { - "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" + { + "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" }, - { - "$ref": "http://asyncapi.com/definitions/3.0.0/operation.json" + { + "$ref": "http://asyncapi.com/definitions/3.0.0/operation.json" } ] }, "example": { "$ref": "http://asyncapi.com/examples/3.0.0/operations.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/operations.json" + } } diff --git a/definitions/3.0.0/parameter.json b/definitions/3.0.0/parameter.json index 996b6817..e42fad12 100644 --- a/definitions/3.0.0/parameter.json +++ b/definitions/3.0.0/parameter.json @@ -1,18 +1,14 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/parameter.json", "description": "Describes a parameter included in a channel address.", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.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." + "description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed.", + "type": "string" }, - "enum": { - "description": "An enumeration of string values to be used if the substitution options are from a limited set.", + "examples": { + "description": "An array of examples of the parameter value.", "type": "array", "items": { "type": "string" @@ -22,22 +18,26 @@ "description": "The default value to use for substitution, and to send, if an alternate value is not supplied.", "type": "string" }, - "examples": { - "description": "An array of examples of the parameter value.", + "enum": { + "description": "An enumeration of string values to be used if the substitution options are from a limited set.", "type": "array", "items": { "type": "string" } }, "location": { - "type": "string", "description": "A runtime expression that specifies the location of the parameter value", + "type": "string", "pattern": "^\\$message\\.(header|payload)#(\\/(([^\\/~])|(~[01]))*)*" } }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + } + }, + "additionalProperties": false, "example": { "$ref": "http://asyncapi.com/examples/3.0.0/parameter.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/parameter.json" + } } diff --git a/definitions/3.0.0/parameters.json b/definitions/3.0.0/parameters.json index 406e7a53..60ba1f6b 100644 --- a/definitions/3.0.0/parameters.json +++ b/definitions/3.0.0/parameters.json @@ -1,4 +1,7 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/parameters.json", + "description": "JSON objects describing re-usable channel parameters.", "type": "object", "additionalProperties": { "oneOf": [ @@ -10,10 +13,7 @@ } ] }, - "description": "JSON objects describing re-usable channel parameters.", "example": { "$ref": "http://asyncapi.com/examples/3.0.0/parameters.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/parameters.json" + } } diff --git a/definitions/3.0.0/schema.json b/definitions/3.0.0/schema.json index 054bbc9b..7e185b07 100644 --- a/definitions/3.0.0/schema.json +++ b/definitions/3.0.0/schema.json @@ -1,41 +1,17 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/schema.json", "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": "http://json-schema.org/draft-07/schema#" }, { - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" - } - }, "properties": { - "additionalProperties": { - "anyOf": [ - { - "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" - }, - { - "type": "boolean" - } - ], - "default": {} - }, - "items": { - "anyOf": [ - { - "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" - }, - { - "type": "array", - "minItems": 1, - "items": { - "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" - } - } - ], - "default": {} + "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", @@ -44,14 +20,14 @@ "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" } }, - "oneOf": { + "anyOf": { "type": "array", "minItems": 1, "items": { "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" } }, - "anyOf": { + "oneOf": { "type": "array", "minItems": 1, "items": { @@ -61,29 +37,55 @@ "not": { "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" }, + "contains": { + "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" + }, + "items": { + "default": {}, + "anyOf": [ + { + "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" + }, + { + "type": "array", + "minItems": 1, + "items": { + "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" + } + } + ] + }, + "propertyNames": { + "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" + }, "properties": { + "default": {}, "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" - }, - "default": {} + } }, "patternProperties": { + "default": {}, "type": "object", "additionalProperties": { "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" - }, - "default": {} - }, - "propertyNames": { - "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" + } }, - "contains": { - "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" + "additionalProperties": { + "default": {}, + "anyOf": [ + { + "$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" + }, + { + "type": "boolean" + } + ] }, "discriminator": { - "type": "string", - "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." + "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": [ @@ -94,15 +96,13 @@ "$ref": "http://asyncapi.com/definitions/3.0.0/externalDocs.json" } ] - }, - "deprecated": { - "type": "boolean", - "description": "Specifies that a schema is deprecated and SHOULD be transitioned out of usage. Default value is false.", - "default": false + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } } } - ], - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/schema.json" -} \ No newline at end of file + ] +} diff --git a/definitions/3.0.0/securityRequirements.json b/definitions/3.0.0/securityRequirements.json index b8da3dcb..01d2f12c 100644 --- a/definitions/3.0.0/securityRequirements.json +++ b/definitions/3.0.0/securityRequirements.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/securityRequirements.json", "description": "An array representing security requirements.", "type": "array", "items": { @@ -10,7 +12,5 @@ "$ref": "http://asyncapi.com/definitions/3.0.0/SecurityScheme.json" } ] - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/securityRequirements.json" + } } diff --git a/definitions/3.0.0/server.json b/definitions/3.0.0/server.json index f51dc063..054f0fcd 100644 --- a/definitions/3.0.0/server.json +++ b/definitions/3.0.0/server.json @@ -1,86 +1,89 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/server.json", "description": "An object representing a message broker, a server or any other kind of computer program capable of sending and/or receiving data.", - "required": ["host", "protocol"], - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" - } - }, - "properties": { - "host": { - "type": "string", - "description": "The server host name. It MAY include the port. This field supports Server Variables. Variable substitutions will be made when a variable is named in {braces}." + "type": "object", + "required": [ + "host", + "protocol" + ], + "properties": { + "title": { + "description": "A human-friendly title for the server.", + "type": "string" }, - "pathname": { - "type": "string", - "description": "The path to a resource in the host. This field supports Server Variables. Variable substitutions will be made when a variable is named in {braces}." + "description": { + "description": "A longer description of the server. CommonMark is allowed.", + "type": "string" }, - "title": { - "type": "string", - "description": "A human-friendly title for the server." + "bindings": { + "oneOf": [ + { + "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" + }, + { + "$ref": "http://asyncapi.com/definitions/3.0.0/serverBindingsObject.json" + } + ] }, - "summary": { - "type": "string", - "description": "A brief summary of the server." + "externalDocs": { + "oneOf": [ + { + "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" + }, + { + "$ref": "http://asyncapi.com/definitions/3.0.0/externalDocs.json" + } + ] }, - "description": { - "type": "string", - "description": "A longer description of the server. CommonMark is allowed." + "host": { + "description": "The server host name. It MAY include the port. This field supports Server Variables. Variable substitutions will be made when a variable is named in {braces}.", + "type": "string" + }, + "pathname": { + "description": "The path to a resource in the host. This field supports Server Variables. Variable substitutions will be made when a variable is named in {braces}.", + "type": "string" }, "protocol": { - "type": "string", - "description": "The protocol this server supports for connection." + "description": "The protocol this server supports for connection.", + "type": "string" }, "protocolVersion": { - "type": "string", - "description": "An optional string describing the server. CommonMark syntax MAY be used for rich text representation." - }, - "variables": { - "$ref": "http://asyncapi.com/definitions/3.0.0/serverVariables.json" + "description": "An optional string describing the server. CommonMark syntax MAY be used for rich text representation.", + "type": "string" }, "security": { "$ref": "http://asyncapi.com/definitions/3.0.0/securityRequirements.json" }, + "summary": { + "description": "A brief summary of the server.", + "type": "string" + }, "tags": { "type": "array", + "uniqueItems": true, "items": { "oneOf": [ - { - "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" - }, - { - "$ref": "http://asyncapi.com/definitions/3.0.0/tag.json" - } - ] - }, - "uniqueItems": true + { + "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" + }, + { + "$ref": "http://asyncapi.com/definitions/3.0.0/tag.json" + } + ] + } }, - "externalDocs": { - "oneOf": [ - { - "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" - }, - { - "$ref": "http://asyncapi.com/definitions/3.0.0/externalDocs.json" - } - ] - }, - "bindings": { - "oneOf": [ - { - "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" - }, - { - "$ref": "http://asyncapi.com/definitions/3.0.0/serverBindingsObject.json" - } - ] + "variables": { + "$ref": "http://asyncapi.com/definitions/3.0.0/serverVariables.json" } }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + } + }, + "additionalProperties": false, "example": { "$ref": "http://asyncapi.com/examples/3.0.0/server.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/server.json" + } } diff --git a/definitions/3.0.0/serverBindingsObject.json b/definitions/3.0.0/serverBindingsObject.json index 91f8b90a..c83a670f 100644 --- a/definitions/3.0.0/serverBindingsObject.json +++ b/definitions/3.0.0/serverBindingsObject.json @@ -1,23 +1,54 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/serverBindingsObject.json", "description": "Map describing protocol-specific definitions for a server.", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" - } - }, + "type": "object", "properties": { - "http": {}, - "ws": {}, "amqp": {}, "amqp1": {}, - "mqtt": { + "anypointmq": {}, + "googlepubsub": {}, + "http": {}, + "ibmmq": { + "allOf": [ + { + "description": "If no bindingVersion specified, use the latest binding", + "if": { + "not": { + "required": [ + "bindingVersion" + ] + } + }, + "then": { + "$ref": "http://asyncapi.com/bindings/ibmmq/0.1.0/server.json" + } + }, + { + "if": { + "required": [ + "bindingVersion" + ], + "properties": { + "bindingVersion": { + "const": "0.1.0" + } + } + }, + "then": { + "$ref": "http://asyncapi.com/bindings/ibmmq/0.1.0/server.json" + } + } + ], "properties": { "bindingVersion": { - "enum": ["0.2.0"] + "enum": [ + "0.1.0" + ] } - }, + } + }, + "jms": { "allOf": [ { "description": "If no bindingVersion specified, use the latest binding", @@ -29,30 +60,34 @@ } }, "then": { - "$ref": "http://asyncapi.com/bindings/mqtt/0.2.0/server.json" + "$ref": "http://asyncapi.com/bindings/jms/0.0.1/server.json" } }, { "if": { - "required": [ "bindingVersion" ], + "required": [ + "bindingVersion" + ], "properties": { "bindingVersion": { - "const": "0.2.0" + "const": "0.0.1" } } - }, + }, "then": { - "$ref": "http://asyncapi.com/bindings/mqtt/0.2.0/server.json" + "$ref": "http://asyncapi.com/bindings/jms/0.0.1/server.json" } } - ] - }, - "kafka": { + ], "properties": { "bindingVersion": { - "enum": ["0.5.0", "0.4.0", "0.3.0"] + "enum": [ + "0.0.1" + ] } - }, + } + }, + "kafka": { "allOf": [ { "description": "If no bindingVersion specified, use the latest binding", @@ -69,7 +104,9 @@ }, { "if": { - "required": [ "bindingVersion" ], + "required": [ + "bindingVersion" + ], "properties": { "bindingVersion": { "const": "0.5.0" @@ -82,40 +119,46 @@ }, { "if": { - "required": [ "bindingVersion" ], + "required": [ + "bindingVersion" + ], "properties": { "bindingVersion": { "const": "0.4.0" } } - }, + }, "then": { "$ref": "http://asyncapi.com/bindings/kafka/0.4.0/server.json" } }, { "if": { - "required": [ "bindingVersion" ], + "required": [ + "bindingVersion" + ], "properties": { "bindingVersion": { "const": "0.3.0" } } - }, + }, "then": { "$ref": "http://asyncapi.com/bindings/kafka/0.3.0/server.json" } } - ] - }, - "anypointmq": {}, - "nats": {}, - "jms": { + ], "properties": { "bindingVersion": { - "enum": ["0.0.1"] + "enum": [ + "0.5.0", + "0.4.0", + "0.3.0" + ] } - }, + } + }, + "mqtt": { "allOf": [ { "description": "If no bindingVersion specified, use the latest binding", @@ -127,34 +170,35 @@ } }, "then": { - "$ref": "http://asyncapi.com/bindings/jms/0.0.1/server.json" + "$ref": "http://asyncapi.com/bindings/mqtt/0.2.0/server.json" } }, { "if": { - "required": [ "bindingVersion" ], + "required": [ + "bindingVersion" + ], "properties": { "bindingVersion": { - "const": "0.0.1" + "const": "0.2.0" } } - }, + }, "then": { - "$ref": "http://asyncapi.com/bindings/jms/0.0.1/server.json" + "$ref": "http://asyncapi.com/bindings/mqtt/0.2.0/server.json" } } - ] - }, - "sns": {}, - "sqs": {}, - "stomp": {}, - "redis": {}, - "ibmmq": { + ], "properties": { "bindingVersion": { - "enum": ["0.1.0"] + "enum": [ + "0.2.0" + ] } - }, + } + }, + "nats": {}, + "pulsar": { "allOf": [ { "description": "If no bindingVersion specified, use the latest binding", @@ -166,30 +210,36 @@ } }, "then": { - "$ref": "http://asyncapi.com/bindings/ibmmq/0.1.0/server.json" + "$ref": "http://asyncapi.com/bindings/pulsar/0.1.0/server.json" } }, { "if": { - "required": [ "bindingVersion" ], + "required": [ + "bindingVersion" + ], "properties": { "bindingVersion": { "const": "0.1.0" } } - }, + }, "then": { - "$ref": "http://asyncapi.com/bindings/ibmmq/0.1.0/server.json" + "$ref": "http://asyncapi.com/bindings/pulsar/0.1.0/server.json" } } - ] - }, - "solace": { + ], "properties": { "bindingVersion": { - "enum": ["0.4.0", "0.3.0", "0.2.0"] + "enum": [ + "0.1.0" + ] } - }, + } + }, + "redis": {}, + "sns": {}, + "solace": { "allOf": [ { "description": "If no bindingVersion specified, use the latest binding", @@ -206,82 +256,68 @@ }, { "if": { - "required": [ "bindingVersion" ], + "required": [ + "bindingVersion" + ], "properties": { "bindingVersion": { "const": "0.4.0" } } - }, + }, "then": { "$ref": "http://asyncapi.com/bindings/solace/0.4.0/server.json" } }, { "if": { - "required": [ "bindingVersion" ], + "required": [ + "bindingVersion" + ], "properties": { "bindingVersion": { "const": "0.3.0" } } - }, + }, "then": { "$ref": "http://asyncapi.com/bindings/solace/0.3.0/server.json" } }, { "if": { - "required": [ "bindingVersion" ], + "required": [ + "bindingVersion" + ], "properties": { "bindingVersion": { "const": "0.2.0" } } - }, + }, "then": { "$ref": "http://asyncapi.com/bindings/solace/0.2.0/server.json" } } - ] - }, - "googlepubsub": {}, - "pulsar": { + ], "properties": { "bindingVersion": { - "enum": ["0.1.0"] + "enum": [ + "0.4.0", + "0.3.0", + "0.2.0" + ] } - }, - "allOf": [ - { - "description": "If no bindingVersion specified, use the latest binding", - "if": { - "not": { - "required": [ - "bindingVersion" - ] - } - }, - "then": { - "$ref": "http://asyncapi.com/bindings/pulsar/0.1.0/server.json" - } - }, - { - "if": { - "required": [ "bindingVersion" ], - "properties": { - "bindingVersion": { - "const": "0.1.0" - } - } - }, - "then": { - "$ref": "http://asyncapi.com/bindings/pulsar/0.1.0/server.json" - } - } - ] + } + }, + "sqs": {}, + "stomp": {}, + "ws": {} + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/serverBindingsObject.json" -} \ No newline at end of file + "additionalProperties": false +} diff --git a/definitions/3.0.0/serverVariable.json b/definitions/3.0.0/serverVariable.json index 1bcc5090..b59a8e0d 100644 --- a/definitions/3.0.0/serverVariable.json +++ b/definitions/3.0.0/serverVariable.json @@ -1,40 +1,40 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/serverVariable.json", "description": "An object representing a Server Variable for server URL template substitution.", - "additionalProperties": false, - "patternProperties": { - "^x-[\\w\\d\\.\\x2d_]+$": { - "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" - } - }, + "type": "object", "properties": { - "enum": { + "description": { + "description": "An optional description for the server variable. CommonMark syntax MAY be used for rich text representation.", + "type": "string" + }, + "examples": { + "description": "An array of examples of the server variable.", "type": "array", - "description": "An enumeration of string values to be used if the substitution options are from a limited set.", "items": { "type": "string" - }, - "uniqueItems": true + } + }, + "default": { + "description": "The default value to use for substitution, and to send, if an alternate value is not supplied.", + "type": "string" }, - "default": { - "type": "string", - "description": "The default value to use for substitution, and to send, if an alternate value is not supplied." - }, - "description": { - "type": "string", - "description": "An optional description for the server variable. CommonMark syntax MAY be used for rich text representation." - }, - "examples": { - "type": "array", - "description": "An array of examples of the server variable.", - "items": { - "type": "string" - } - } + "enum": { + "description": "An enumeration of string values to be used if the substitution options are from a limited set.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + } + }, + "additionalProperties": false, "example": { "$ref": "http://asyncapi.com/examples/3.0.0/serverVariable.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/serverVariable.json" + } } diff --git a/definitions/3.0.0/serverVariables.json b/definitions/3.0.0/serverVariables.json index 69015771..d4b0db62 100644 --- a/definitions/3.0.0/serverVariables.json +++ b/definitions/3.0.0/serverVariables.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/serverVariables.json", "type": "object", "additionalProperties": { "oneOf": [ @@ -9,7 +11,5 @@ "$ref": "http://asyncapi.com/definitions/3.0.0/serverVariable.json" } ] - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/serverVariables.json" -} \ No newline at end of file + } +} diff --git a/definitions/3.0.0/servers.json b/definitions/3.0.0/servers.json index 9c6e9486..d7de7e6b 100644 --- a/definitions/3.0.0/servers.json +++ b/definitions/3.0.0/servers.json @@ -1,4 +1,6 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/servers.json", "description": "An object representing multiple servers.", "type": "object", "additionalProperties": { @@ -7,13 +9,11 @@ "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" }, { - "$ref": "http://asyncapi.com/definitions/3.0.0/server.json" + "$ref": "http://asyncapi.com/definitions/3.0.0/server.json" } ] }, "example": { "$ref": "http://asyncapi.com/examples/3.0.0/servers.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/servers.json" + } } diff --git a/definitions/3.0.0/specificationExtension.json b/definitions/3.0.0/specificationExtension.json index 37c426a1..803eca32 100644 --- a/definitions/3.0.0/specificationExtension.json +++ b/definitions/3.0.0/specificationExtension.json @@ -1,7 +1,7 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json", "description": "Any property starting with x- is valid.", - "additionalProperties": true, "additionalItems": true, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" -} \ No newline at end of file + "additionalProperties": true +} diff --git a/definitions/3.0.0/symmetricEncryption.json b/definitions/3.0.0/symmetricEncryption.json index 5cc61ef2..f4d757ec 100644 --- a/definitions/3.0.0/symmetricEncryption.json +++ b/definitions/3.0.0/symmetricEncryption.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/symmetricEncryption.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "symmetricEncryption" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,10 +21,8 @@ "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } }, + "additionalProperties": false, "example": { "$ref": "http://asyncapi.com/examples/3.0.0/symmetricEncryption.json" - }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/symmetricEncryption.json" + } } diff --git a/definitions/3.0.0/tag.json b/definitions/3.0.0/tag.json index 2e5ab3ea..7e94364c 100644 --- a/definitions/3.0.0/tag.json +++ b/definitions/3.0.0/tag.json @@ -1,18 +1,15 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/tag.json", "description": "Allows adding metadata to a single tag.", - "additionalProperties": false, + "type": "object", "required": [ "name" ], "properties": { - "name": { - "type": "string", - "description": "The name of the tag." - }, "description": { - "type": "string", - "description": "A short description for the tag. CommonMark syntax can be used for rich text representation." + "description": "A short description for the tag. CommonMark syntax can be used for rich text representation.", + "type": "string" }, "externalDocs": { "oneOf": [ @@ -23,6 +20,10 @@ "$ref": "http://asyncapi.com/definitions/3.0.0/externalDocs.json" } ] + }, + "name": { + "description": "The name of the tag.", + "type": "string" } }, "patternProperties": { @@ -30,9 +31,8 @@ "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } }, + "additionalProperties": false, "example": { "$ref": "http://asyncapi.com/examples/3.0.0/tag.json" - }, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/tag.json" + } } diff --git a/definitions/3.0.0/userPassword.json b/definitions/3.0.0/userPassword.json index 21a2b65a..b068d0e2 100644 --- a/definitions/3.0.0/userPassword.json +++ b/definitions/3.0.0/userPassword.json @@ -1,17 +1,19 @@ { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/definitions/3.0.0/userPassword.json", "type": "object", "required": [ "type" ], "properties": { + "description": { + "type": "string" + }, "type": { "type": "string", "enum": [ "userPassword" ] - }, - "description": { - "type": "string" } }, "patternProperties": { @@ -19,10 +21,8 @@ "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } }, + "additionalProperties": false, "example": { "$ref": "http://asyncapi.com/examples/3.0.0/userPassword.json" - }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/definitions/3.0.0/userPassword.json" + } } diff --git a/extensions/linkedin/0.1.0/schema.json b/extensions/linkedin/0.1.0/schema.json index b7a953c8..082cc7e4 100644 --- a/extensions/linkedin/0.1.0/schema.json +++ b/extensions/linkedin/0.1.0/schema.json @@ -1,11 +1,11 @@ { - "type": "string", - "pattern": "^http(s)?://(www\\.)?linkedin\\.com.*$", - "description": "This extension allows you to provide the Linkedin profile URL of the account representing the team/company of the API.", - "example": [ - "https://www.linkedin.com/company/asyncapi/", - "https://www.linkedin.com/in/sambhavgupta0705/" - ], - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/extensions/linkedin/0.1.0/schema.json" + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/extensions/linkedin/0.1.0/schema.json", + "description": "This extension allows you to provide the Linkedin profile URL of the account representing the team/company of the API.", + "type": "string", + "pattern": "^http(s)?://(www\\.)?linkedin\\.com.*$", + "example": [ + "https://www.linkedin.com/company/asyncapi/", + "https://www.linkedin.com/in/sambhavgupta0705/" + ] } diff --git a/extensions/x/0.1.0/schema.json b/extensions/x/0.1.0/schema.json index 6bfdc146..022fed3e 100644 --- a/extensions/x/0.1.0/schema.json +++ b/extensions/x/0.1.0/schema.json @@ -1,10 +1,10 @@ { - "type": "string", - "description": "This extension allows you to provide the Twitter username of the account representing the team/company of the API.", - "example": [ - "sambhavgupta75", - "AsyncAPISpec" - ], - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://asyncapi.com/extensions/x/0.1.0/schema.json" + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://asyncapi.com/extensions/x/0.1.0/schema.json", + "description": "This extension allows you to provide the Twitter username of the account representing the team/company of the API.", + "type": "string", + "example": [ + "sambhavgupta75", + "AsyncAPISpec" + ] } diff --git a/package-lock.json b/package-lock.json index affb1c97..9a6c6870 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "@types/json-schema": "^7.0.11" }, "devDependencies": { + "@intelligence-ai/jsonschema": "^0.5.0", "ajv": "^8.12.0", "ajv-draft-04": "^1.0.0", "eslint": "^8.56.0", @@ -660,6 +661,15 @@ "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", "dev": true }, + "node_modules/@intelligence-ai/jsonschema": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@intelligence-ai/jsonschema/-/jsonschema-0.5.0.tgz", + "integrity": "sha512-lTDSxZdyCkJuuV+5V1dpigFJHmBWbaA32ddhfBVfzTDpjvsbvGcDfwDdeCGq5WFNoAxFqLUBpnVgdMSS///phg==", + "dev": true, + "bin": { + "jsonschema": "cli.js" + } + }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", diff --git a/package.json b/package.json index b1e226c6..5966a691 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "lint": "eslint --max-warnings 0 --config .eslintrc.yml .", "lint:fix": "eslint --max-warnings 0 --config .eslintrc.yml --fix .", "bump:version": "npm --no-git-tag-version --allow-same-version version $VERSION", - "validate:schemas": "node scripts/validate-schemas.js" + "validate:schemas": "node scripts/validate-schemas.js && jsonschema fmt bindings common definitions extensions --verbose --check" }, "repository": { "type": "git", @@ -39,6 +39,7 @@ }, "homepage": "https://github.com/asyncapi/spec-json-schemas#readme", "devDependencies": { + "@intelligence-ai/jsonschema": "^0.5.0", "ajv": "^8.12.0", "ajv-draft-04": "^1.0.0", "eslint": "^8.56.0",