-
-
Notifications
You must be signed in to change notification settings - Fork 54
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat!: add 3.0.0 validation support (#462)
Co-authored-by: Sergio Moya <1083296+smoya@users.noreply.github.com>%0ACo-authored-by: asyncapi-bot <bot+chan@asyncapi.io>%0ACo-authored-by: asyncapi-bot-eve <bot+eve@asyncapi.io>%0ACo-authored-by: Fran Méndez <fmvilas@gmail.com>%0ACo-authored-by: Lukasz Gornicki <lpgornicki@gmail.com>%0ACo-authored-by: Maciej Urbańczyk <urbanczyk.maciej.95@gmail.com>
- Loading branch information
1 parent
8369438
commit 26ffcd0
Showing
158 changed files
with
29,131 additions
and
220 deletions.
There are no files selected for viewing
Validating CODEOWNERS rules …
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,136 @@ | ||
{ | ||
"$schema": "http://json-schema.org/draft-07/schema#", | ||
"$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.", | ||
"type": "object", | ||
"additionalProperties": false, | ||
"patternProperties": { | ||
"^x-[\\w\\d\\.\\x2d_]+$": { | ||
"$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" | ||
} | ||
}, | ||
"properties": { | ||
"is": { | ||
"type": "string", | ||
"enum": ["queue", "routingKey"], | ||
"description": "Defines what type of channel is it. Can be either 'queue' or 'routingKey' (default)." | ||
}, | ||
"exchange": { | ||
"type": "object", | ||
"properties": { | ||
"name": { | ||
"type": "string", | ||
"maxLength": 255, | ||
"description": "The name of the exchange. It MUST NOT exceed 255 characters long." | ||
}, | ||
"type": { | ||
"type": "string", | ||
"enum": ["topic", "direct", "fanout", "default", "headers"], | ||
"description": "The type of the exchange. Can be either 'topic', 'direct', 'fanout', 'default' or 'headers'." | ||
}, | ||
"durable": { | ||
"type": "boolean", | ||
"description": "Whether the exchange should survive broker restarts or not." | ||
}, | ||
"autoDelete": { | ||
"type": "boolean", | ||
"description": "Whether the exchange should be deleted when the last queue is unbound from it." | ||
}, | ||
"vhost": { | ||
"type": "string", | ||
"default": "/", | ||
"description": "The virtual host of the exchange. Defaults to '/'." | ||
} | ||
}, | ||
"description": "When is=routingKey, this object defines the exchange properties." | ||
}, | ||
"queue": { | ||
"type": "object", | ||
"properties": { | ||
"name": { | ||
"type": "string", | ||
"maxLength": 255, | ||
"description": "The name of the queue. It MUST NOT exceed 255 characters long." | ||
}, | ||
"durable": { | ||
"type": "boolean", | ||
"description": "Whether the queue should survive broker restarts or not." | ||
}, | ||
"exclusive": { | ||
"type": "boolean", | ||
"description": "Whether the queue should be used only by one connection or not." | ||
}, | ||
"autoDelete": { | ||
"type": "boolean", | ||
"description": "Whether the queue should be deleted when the last consumer unsubscribes." | ||
}, | ||
"vhost": { | ||
"type": "string", | ||
"default": "/", | ||
"description": "The virtual host of the queue. Defaults to '/'." | ||
} | ||
}, | ||
"description": "When is=queue, this object defines the queue properties." | ||
}, | ||
"bindingVersion": { | ||
"type": "string", | ||
"enum": [ | ||
"0.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" | ||
} | ||
] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
{ | ||
"$schema": "http://json-schema.org/draft-07/schema#", | ||
"$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" | ||
} | ||
}, | ||
"properties": { | ||
"contentEncoding": { | ||
"type": "string", | ||
"description": "A MIME encoding for the message content." | ||
}, | ||
"messageType": { | ||
"type": "string", | ||
"description": "Application-specific message type." | ||
}, | ||
"bindingVersion": { | ||
"type": "string", | ||
"enum": [ | ||
"0.2.0" | ||
], | ||
"description": "The version of this binding. If omitted, \"latest\" MUST be assumed." | ||
} | ||
}, | ||
"examples": [ | ||
{ | ||
"contentEncoding": "gzip", | ||
"messageType": "user.signup", | ||
"bindingVersion": "0.2.0" | ||
} | ||
] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,89 @@ | ||
{ | ||
"$schema": "http://json-schema.org/draft-07/schema#", | ||
"$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" | ||
} | ||
}, | ||
"properties": { | ||
"expiration": { | ||
"type": "integer", | ||
"minimum": 0, | ||
"description": "TTL (Time-To-Live) for the message. It MUST be greater than or equal to zero." | ||
}, | ||
"userId": { | ||
"type": "string", | ||
"description": "Identifies the user who has sent the message." | ||
}, | ||
"cc": { | ||
"type": "array", | ||
"items": { | ||
"type": "string" | ||
}, | ||
"description": "The routing keys the message should be routed to at the time of publishing." | ||
}, | ||
"priority": { | ||
"type": "integer", | ||
"description": "A priority for the message." | ||
}, | ||
"deliveryMode": { | ||
"type": "integer", | ||
"enum": [1,2], | ||
"description": "Delivery mode of the message. Its value MUST be either 1 (transient) or 2 (persistent)." | ||
}, | ||
"mandatory": { | ||
"type": "boolean", | ||
"description": "Whether the message is mandatory or not." | ||
}, | ||
"bcc": { | ||
"type": "array", | ||
"items": { | ||
"type": "string" | ||
}, | ||
"description": "Like cc but consumers will not receive this information." | ||
}, | ||
"replyTo": { | ||
"type": "string", | ||
"description": "Name of the queue where the consumer should send the response." | ||
}, | ||
"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." | ||
}, | ||
"bindingVersion": { | ||
"type": "string", | ||
"enum": [ | ||
"0.2.0" | ||
], | ||
"description": "The version of this binding. If omitted, \"latest\" MUST be assumed." | ||
} | ||
}, | ||
"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" | ||
} | ||
] | ||
} |
Oops, something went wrong.