Skip to content

Commit

Permalink
feat: add kafka 0.4 and mqtt5 changes (#310)
Browse files Browse the repository at this point in the history
  • Loading branch information
jonaslagoni authored Feb 2, 2023
1 parent eeb6d5d commit bc4e458
Show file tree
Hide file tree
Showing 7 changed files with 278 additions and 3 deletions.
3 changes: 0 additions & 3 deletions bindings/ibmmq/0.1.0/channel.json
Original file line number Diff line number Diff line change
Expand Up @@ -84,9 +84,6 @@
"properties": {
"destinationType": { "const": "topic" }
},
"required": [
"topic"
],
"not": {
"required": [
"queue"
Expand Down
80 changes: 80 additions & 0 deletions bindings/kafka/0.4.0/channel.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$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\\.\\-\\_]+$": {
"$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json"
}
},
"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."
},
"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":{
"type": "string",
"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
}
}
},
"bindingVersion": {
"type": "string",
"enum": [
"0.4.0"
],
"description": "The version of this binding. If omitted, 'latest' MUST be assumed."
}

},
"examples": [
{
"topic": "my-specific-topic",
"partitions": 20,
"replicas": 3,
"bindingVersion": "0.4.0"
}
]
}
61 changes: 61 additions & 0 deletions bindings/kafka/0.4.0/message.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
{
"$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\\.\\-\\_]+$": {
"$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.4.0"
],
"description": "The version of this binding. If omitted, 'latest' MUST be assumed."
}

},
"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"
}
]
}
47 changes: 47 additions & 0 deletions bindings/kafka/0.4.0/operation.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$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\\.\\-\\_]+$": {
"$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": {
"type": "string",
"enum": [
"myGroupId"
]
},
"clientId": {
"type": "string",
"enum": [
"myClientId"
]
},
"bindingVersion": "0.4.0"
}
]
}
37 changes: 37 additions & 0 deletions bindings/kafka/0.4.0/server.json
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/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\\.\\-\\_]+$": {
"$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json"
}
},
"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.4.0"
],
"description": "The version of this binding."
}
},
"examples": [
{
"schemaRegistryUrl": "https://my-schema-registry.com",
"schemaRegistryVendor": "confluent",
"bindingVersion": "0.4.0"
}
]
}
Empty file removed bindings/mqtt5/.keep
Empty file.
53 changes: 53 additions & 0 deletions bindings/mqtt5/0.2.0/server.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "http://asyncapi.com/bindings/mqtt5/0.1.0/server.json",
"title": "Server Schema",
"description": "This object contains information about the server representation in MQTT5.",
"type": "object",
"additionalProperties": false,
"patternProperties": {
"^x-[\\w\\d\\.\\-\\_]+$": {
"$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json"
}
},
"properties": {

"sessionExpiryInterval": {
"oneOf": [
{
"type": "integer",
"minimum": 0
},
{
"$ref": "http://asyncapi.com/definitions/3.0.0/schema.json"
},
{
"$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json"
}
],
"description": "Session Expiry Interval in seconds or a Schema Object containing the definition of the interval."
},
"bindingVersion": {
"type": "string",
"enum": [
"0.2.0"
],
"description": "The version of this binding. If omitted, 'latest' MUST be assumed."
}
},
"examples": [
{
"sessionExpiryInterval": 60,
"bindingVersion": "0.2.0"
},
{
"sessionExpiryInterval": {
"type": "integer",
"minimum": 100
},
"bindingVersion": "0.2.0"
}
]
}


0 comments on commit bc4e458

Please sign in to comment.