-
-
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 amqp, mqtt and http bindings for v3 (#417)
- Loading branch information
1 parent
081a249
commit 92e4aef
Showing
15 changed files
with
551 additions
and
35 deletions.
There are no files selected for viewing
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.3.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.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" | ||
} | ||
] | ||
} |
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.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" | ||
} | ||
}, | ||
"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.3.0" | ||
], | ||
"description": "The version of this binding. If omitted, \"latest\" MUST be assumed." | ||
} | ||
}, | ||
"examples": [ | ||
{ | ||
"contentEncoding": "gzip", | ||
"messageType": "user.signup", | ||
"bindingVersion": "0.3.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,84 @@ | ||
{ | ||
"$schema": "http://json-schema.org/draft-07/schema#", | ||
"$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" | ||
} | ||
}, | ||
"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." | ||
}, | ||
"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.3.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" | ||
], | ||
"timestamp": true, | ||
"ack": false, | ||
"bindingVersion": "0.3.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,42 @@ | ||
{ | ||
"$schema": "http://json-schema.org/draft-07/schema#", | ||
"$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": [ | ||
{ | ||
"headers": { | ||
"type": "object", | ||
"properties": { | ||
"Content-Type": { | ||
"type": "string", | ||
"enum": [ | ||
"application/json" | ||
] | ||
} | ||
} | ||
}, | ||
"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,82 @@ | ||
{ | ||
"$schema": "http://json-schema.org/draft-07/schema#", | ||
"$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": [ | ||
{ | ||
"query": { | ||
"type": "object", | ||
"required": [ | ||
"companyId" | ||
], | ||
"properties": { | ||
"companyId": { | ||
"type": "number", | ||
"minimum": 1, | ||
"description": "The Id of the company." | ||
} | ||
}, | ||
"additionalProperties": false | ||
}, | ||
"bindingVersion": "0.2.0" | ||
}, | ||
{ | ||
"method": "GET", | ||
"query": { | ||
"type": "object", | ||
"required": [ | ||
"companyId" | ||
], | ||
"properties": { | ||
"companyId": { | ||
"type": "number", | ||
"minimum": 1, | ||
"description": "The Id of the company." | ||
} | ||
}, | ||
"additionalProperties": false | ||
}, | ||
"bindingVersion": "0.2.0" | ||
} | ||
] | ||
} | ||
|
||
|
||
|
||
|
Oops, something went wrong.